Example #1
0
	public function Authorize()
	{
		$GLOBALS["APPLICATION"]->RestartBuffer();
		$bSuccess = false;

			if(isset($_REQUEST["code"]) && $_REQUEST["code"] <> '')
			{
				if(CSocServAuthManager::CheckUniqueKey())
				{
				$redirect_uri = CSocServUtil::GetCurUrl('auth_service_id='.self::ID, array("code"));

				$appID = self::GetOption("facebook_appid");
				$appSecret = self::GetOption("facebook_appsecret");

				$fb = new CFacebookInterface($appID, $appSecret, $_REQUEST["code"]);

				if($fb->GetAccessToken($redirect_uri) !== false)
				{
					$arFBUser = $fb->GetCurrentUser();
					if(isset($arFBUser["id"]))
					{
						$arFields = array(
							'EXTERNAL_AUTH_ID' => self::ID,
							'XML_ID' => $arFBUser["id"],
							'LOGIN' => "FB_".$arFBUser["email"],
							'EMAIL' => $arFBUser["email"],
							'NAME'=> $arFBUser["first_name"],
							'LAST_NAME'=> $arFBUser["last_name"],
						);

						if(isset($arFBUser['picture']['data']['url']) && self::CheckPhotoURI($arFBUser['picture']['data']['url']))
							if ($arPic = CFile::MakeFileArray($arFBUser['picture']['data']['url']))
								$arFields["PERSONAL_PHOTO"] = $arPic;
						if(isset($arFBUser['birthday']))
							if ($date = MakeTimeStamp($arFBUser['birthday'], "MM/DD/YYYY"))
								$arFields["PERSONAL_BIRTHDAY"] = ConvertTimeStamp($date);
						if(isset($arFBUser['gender']) && $arFBUser['gender'] != '')
						{
							if ($arFBUser['gender'] == 'male')
								$arFields["PERSONAL_GENDER"] = 'M';
							elseif ($arFBUser['gender'] == 'female')
								$arFields["PERSONAL_GENDER"] = 'F';
						}
						$arFields["PERSONAL_WWW"] = "http://www.facebook.com/".$arFBUser["id"];
						$bSuccess = $this->AuthorizeUser($arFields);
					}
				}
			}
		}
		$aRemove = array("logout", "auth_service_error", "auth_service_id", "code", "error_reason", "error", "error_description", "check_key");
		$url = $GLOBALS['APPLICATION']->GetCurPageParam(($bSuccess? '':'auth_service_id='.self::ID.'&auth_service_error=1'), $aRemove);
		echo '
<script type="text/javascript">
if(window.opener)
	window.opener.location = \''.CUtil::JSEscape($url).'\';
window.close();
</script>
';
		die();
	}
Example #2
0
 public static function SendUserFeed($userId, $message, $messageId)
 {
     $appID = trim(self::GetOption("facebook_appid"));
     $appSecret = trim(self::GetOption("facebook_appsecret"));
     $fb = new CFacebookInterface($appID, $appSecret);
     return $fb->SendFeed($userId, $message, $messageId);
 }
Example #3
0
<?php

if (!defined("B_PROLOG_INCLUDED") || B_PROLOG_INCLUDED !== true) {
    die;
}
if ($this->StartResultCache()) {
    CModule::IncludeModule("socialservices");
    $FBappID = CSocServFacebook::GetOption("facebook_appid");
    $FBappSecret = CSocServFacebook::GetOption("facebook_appsecret");
    $fb_soc = new CFacebookInterface($FBappID, $FBappSecret);
    $arResult['URL_FB'] = $fb_soc->GetAuthUrl("http://" . MAINSERVER . "/auth/facebook/" . base64_encode("http://" . MAINSERVER . $arParams['AUTH_URL']));
    $arResult['URL_VK'] = "https://oauth.vk.com/authorize?client_id=" . CSocServVKontakte::GetOption("vkontakte_appid") . "&scope=8199&redirect_uri=" . urlencode("http://" . MAINSERVER . "/auth/vkontakte/" . base64_encode("http://" . MAINSERVER . $arParams['AUTH_URL']));
    $arResult['LOGIN_TOP_REDIRECT'] = $arParams['LOGIN_TOP_REDIRECT'];
    $this->IncludeComponentTemplate();
}
Example #4
0
 public static function SendUserFeed($userId, $message, $messageId)
 {
     $fb = new CFacebookInterface();
     return $fb->SendFeed($userId, $message, $messageId);
 }