• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/classes/general/yandex.php
  • Класс: CSocServYandexAuth
  • Вызов: CSocServYandexAuth::prepareUser
public function prepareUser($yandexUser, $short = false)
{
	$id = $yandexUser['id'];

	$userFields = array(
		'EXTERNAL_AUTH_ID' => static::ID,
		'XML_ID' => $id,
		'LOGIN' => static::LOGIN_PREFIX.$id,
		'NAME'=> $yandexUser['first_name'],
		'LAST_NAME'=> $yandexUser['last_name'],
		'OATOKEN' => $this->entityOAuth->getToken(),
		'OATOKEN_EXPIRES' => $this->entityOAuth->getAccessTokenExpires(),
	);

	if($userFields["NAME"] == '')
	{
		$userFields["NAME"] = $yandexUser["login"];
	}

	if(isset($yandexUser["emails"]) && is_array($yandexUser["emails"]) && count($yandexUser["emails"]) > 0)
	{
		$userFields["EMAIL"] = $yandexUser['emails'][0];
	}

	if(!$short && !empty($yandexUser['default_avatar_id']))
	{
		$picture_url = "https://avatars.yandex.net/get-yapic/".$yandexUser["default_avatar_id"]."/islands-200";

		$temp_path = CFile::GetTempName('', 'picture.jpg');

		$ob = new BitrixMainWebHttpClient(array(
			"redirect" => true
		));
		$ob->download($picture_url, $temp_path);

		$arPic = CFile::MakeFileArray($temp_path);
		if($arPic)
		{
			$userFields["PERSONAL_PHOTO"] = $arPic;
		}
	}

	if(SITE_ID <> '')
	{
		$userFields["SITE_ID"] = SITE_ID;
	}

	return $userFields;
}