• Модуль: socialservices
  • Путь к файлу: ~/bitrix/modules/socialservices/classes/general/authmanager.php
  • Класс: CSocServAuthManager
  • Вызов: CSocServAuthManager::SendSocialservicesMessages
static function SendSocialservicesMessages()
{
	$oAuthManager = new CSocServAuthManager();
	if(!$oAuthManager->isActiveAuthService('Twitter') || !function_exists("hash_hmac"))
		return false;

	$ttl = 86400;
	$cache_id = 'socserv_mes_user';
	$obCache = new CPHPCache;
	$cache_dir = '/bx/socserv_mes_user';

	$arSocServMessage = array();
	if($obCache->InitCache($ttl, $cache_id, $cache_dir))
		$arSocServMessage = $obCache->GetVars();
	else
	{
		$dbSocServMessage = CSocServMessage::GetList(array(), array('SUCCES_SENT' => 'N'), false, array("nTopCount" => 5), array("ID", "SOCSERV_USER_ID", "PROVIDER", "MESSAGE"));

		while($arSocMessage = $dbSocServMessage->Fetch())
			$arSocServMessage[] = $arSocMessage;
		if(empty($arSocServMessage))
			if($obCache->StartDataCache())
				$obCache->EndDataCache($arSocServMessage);
	}
	if(is_array($arSocServMessage) && !empty($arSocServMessage))
		foreach($arSocServMessage as $arSocMessage)
		{
			$arResult = CSocServAuthManager::SendUserMessage($arSocMessage['SOCSERV_USER_ID'], $arSocMessage['PROVIDER'], $arSocMessage['MESSAGE'], $arSocMessage['ID']);
			if($arResult !== false && is_array($arResult) && !preg_match("/error/i", join(",", array_keys($arResult))))
				self::MarkMessageAsSent($arSocMessage['ID']);
		}
	return "CSocServAuthManager::SendSocialservicesMessages();";
}