• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/classes/general/authmanager.php
  • Класс: CSocServAuth
  • Вызов: CSocServAuth::GetTwitMessages
static function GetTwitMessages($lastTwitId = "1", $counter = 1)
{
	$oAuthManager = new CSocServAuthManager();
	if(!$oAuthManager->isActiveAuthService('Twitter') || !function_exists("hash_hmac"))
		return false;
	if(!CModule::IncludeModule("socialnetwork"))
		return "CSocServAuthManager::GetTwitMessages("$lastTwitId", $counter);";
	global $USER;
	$bTmpUserCreated = false;
	if(!isset($USER) || !(($USER instanceof CUser) && ('CUser' == get_class($USER))))
	{
		$bTmpUserCreated = true;
		if(isset($USER))
		{
			$USER_TMP = $USER;
			unset($USER);
		}

		$USER = new CUser();
	}
	if(intval($lastTwitId) <= 1 || $counter == 1)
		$lastTwitId = COption::GetOptionString('socialservices', 'last_twit_id', '1');
	$socServUserArray = self::GetUserArray('Twitter');
	$arSiteId = array();
	if(isset($socServUserArray[3]) && is_array($socServUserArray[3]))
		$arSiteId = $socServUserArray[3];
	$twitManager = new CSocServTwitter();
	$arUserTwit = $twitManager->GetUserMessage($socServUserArray, $lastTwitId);
	if(is_array($arUserTwit))
	{
		if(isset($arUserTwit["statuses"]) && !empty($arUserTwit["statuses"]))
			$lastTwitId = self::PostIntoBuzz($arUserTwit, $lastTwitId, $arSiteId);
		elseif((is_array($arUserTwit["search_metadata"]) && isset($arUserTwit["search_metadata"]["max_id_str"])) &&	($arUserTwit["search_metadata"]["max_id_str"] <> ''))
			$lastTwitId = $arUserTwit["search_metadata"]["max_id_str"];
	}
	$counter++;
	if($counter >= 20)
	{
		// $oldLastId = COption::GetOptionString('socialservices', 'last_twit_id', '1');
		// if((strlen($lastTwitId) > strlen($oldLastId)) && $oldLastId[0] != 9)
		// 	$lastTwitId = substr($lastTwitId, 1);
		COption::SetOptionString('socialservices', 'last_twit_id', $lastTwitId);
		$counter = 1;
	}
	$lastTwitId = preg_replace("|D|", '', $lastTwitId);
	if($bTmpUserCreated)
	{
		unset($USER);
		if(isset($USER_TMP))
		{
			$USER = $USER_TMP;
			unset($USER_TMP);
		}
	}
	return "CSocServAuthManager::GetTwitMessages("$lastTwitId", $counter);";
}