本文整理汇总了PHP中CSocServUtil::ServerName方法的典型用法代码示例。如果您正苦于以下问题:PHP CSocServUtil::ServerName方法的具体用法?PHP CSocServUtil::ServerName怎么用?PHP CSocServUtil::ServerName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CSocServUtil
的用法示例。
在下文中一共展示了CSocServUtil::ServerName方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getFriendsList
public function getFriendsList($limit, &$next)
{
if (IsModuleInstalled('bitrix24') && defined('BX24_HOST_NAME')) {
$redirect_uri = static::CONTROLLER_URL . "/redirect.php";
} else {
$redirect_uri = CSocServUtil::ServerName() . "/bitrix/tools/oauth/google.php";
}
$ob = $this->getEntityOAuth();
if ($ob->GetAccessToken($redirect_uri) !== false) {
$res = $ob->getCurrentUserFriends($limit, $next);
foreach ($res["items"] as $key => $contact) {
$contact["uid"] = $contact["id"];
if (array_key_exists("name", $contact)) {
$contact["first_name"] = $contact["name"]["givenName"];
$contact["last_name"] = $contact["name"]["familyName"];
} else {
list($contact["first_name"], $contact["last_name"]) = explode(" ", $contact["displayName"], 2);
}
if (array_key_exists("image", $contact)) {
$contact["picture"] = preg_replace("/\\?.*\$/", "", $contact["image"]["url"]);
}
$res["items"][$key] = $contact;
}
return $res["items"];
}
return false;
}
示例2: GetSettings
public function GetSettings()
{
return array(
array("liveid_appid", GetMessage("socserv_liveid_client_id"), "", Array("text", 40)),
array("liveid_appsecret", GetMessage("socserv_liveid_client_secret"), "", Array("text", 40)),
array("note"=>GetMessage("socserv_liveid_form_note", array('#URL#'=>CSocServUtil::ServerName()))),
);
}
示例3: Authorize
public function Authorize()
{
global $APPLICATION;
$APPLICATION->RestartBuffer();
$bSuccess = SOCSERV_AUTHORISATION_ERROR;
if((isset($_REQUEST["code"]) && $_REQUEST["code"] <> '') && CSocServAuthManager::CheckUniqueKey())
{
if(IsModuleInstalled('freetrix24') && defined('BX24_HOST_NAME'))
$redirect_uri = self::CONTROLLER_URL."/redirect.php";
else
$redirect_uri = CSocServUtil::ServerName()."/freetrix/tools/oauth/google.php";
$appID = trim(self::GetOption("google_appid"));
$appSecret = trim(self::GetOption("google_appsecret"));
$gAuth = new CGoogleOAuthInterface($appID, $appSecret, $_REQUEST["code"]);
$this->entityOAuth = $gAuth;
if($gAuth->GetAccessToken($redirect_uri) !== false)
{
$arGoogleUser = $gAuth->GetCurrentUser();
if(is_array($arGoogleUser) && ($arGoogleUser['email'] <> ''))
{
$first_name = $last_name = $gender = "";
if($arGoogleUser['name'] <> '')
{
$aName = explode(" ", $arGoogleUser['name']);
if($arGoogleUser['given_name'] <> '')
$first_name = $arGoogleUser['given_name'];
else
$first_name = $aName[0];
if($arGoogleUser['family_name'] <> '')
$last_name = $arGoogleUser['family_name'];
elseif(isset($aName[1]))
$last_name = $aName[1];
}
$email = $arGoogleUser['email'];
if($arGoogleUser['gender'] <> '')
if($arGoogleUser['gender'] == 'male')
$gender = 'M';
elseif($arGoogleUser['gender'] == 'female')
$gender = 'F';
$arFields = array(
'EXTERNAL_AUTH_ID' => self::ID,
'XML_ID' => $email,
'LOGIN' => "G_".$email,
'EMAIL' => $email,
'NAME'=> $first_name,
'LAST_NAME'=> $last_name
);
if($gender != "")
$arFields['PERSONAL_GENDER'] = $gender;
if(isset($arGoogleUser['picture']) && self::CheckPhotoURI($arGoogleUser['picture']))
if($arPic = CFile::MakeFileArray($arGoogleUser['picture']))
$arFields["PERSONAL_PHOTO"] = $arPic;
$arFields["PERSONAL_WWW"] = $arGoogleUser['link'];
if(isset($arGoogleUser['access_token']))
$arFields["OATOKEN"] = $arGoogleUser['access_token'];
if(isset($arGoogleUser['refresh_token']))
$arFields["REFRESH_TOKEN"] = $arGoogleUser['refresh_token'];
if(isset($arGoogleUser['expires_in']))
$arFields["OATOKEN_EXPIRES"] = $arGoogleUser['expires_in'];
if(strlen(SITE_ID) > 0)
$arFields["SITE_ID"] = SITE_ID;
$bSuccess = $this->AuthorizeUser($arFields);
}
}
}
$url = ($APPLICATION->GetCurDir() == "/login/") ? "" : $APPLICATION->GetCurDir();
$aRemove = array("logout", "auth_service_error", "auth_service_id", "code", "error_reason", "error", "error_description", "check_key", "current_fieldset");
$mode = 'opener';
if(isset($_REQUEST["state"]))
{
$arState = array();
parse_str($_REQUEST["state"], $arState);
if(isset($arState['backurl']))
{
$parseUrl = parse_url($arState['backurl']);
$urlPath = $parseUrl["path"];
$arUrlQuery = explode('&', $parseUrl["query"]);
foreach($arUrlQuery as $key => $value)
{
foreach($aRemove as $param)
{
if(strpos($value, $param."=") === 0)
{
unset($arUrlQuery[$key]);
break;
//.........这里部分代码省略.........
示例4: Authorize
public function Authorize()
{
global $APPLICATION;
$APPLICATION->RestartBuffer();
$bSuccess = SOCSERV_AUTHORISATION_ERROR;
$bProcessState = false;
if (isset($_REQUEST["code"]) && $_REQUEST["code"] != '' && CSocServAuthManager::CheckUniqueKey()) {
$bProcessState = true;
if (IsModuleInstalled('bitrix24') && defined('BX24_HOST_NAME')) {
$redirect_uri = self::CONTROLLER_URL . "/redirect.php";
} else {
$redirect_uri = CSocServUtil::ServerName() . "/bitrix/tools/oauth/odnoklassniki.php";
}
$appID = trim(self::GetOption("odnoklassniki_appid"));
$appSecret = trim(self::GetOption("odnoklassniki_appsecret"));
$appKey = trim(self::GetOption("odnoklassniki_appkey"));
$gAuth = new COdnoklassnikiInterface($appID, $appSecret, $appKey, $_REQUEST["code"]);
if ($gAuth->GetAccessToken($redirect_uri) !== false) {
$arOdnoklUser = $gAuth->GetCurrentUser();
if (is_array($arOdnoklUser) && $arOdnoklUser['uid'] != '') {
$uid = $arOdnoklUser['uid'];
$first_name = $last_name = $gender = "";
if ($arOdnoklUser['first_name'] != '') {
$first_name = $arOdnoklUser['first_name'];
}
if ($arOdnoklUser['last_name'] != '') {
$last_name = $arOdnoklUser['last_name'];
}
if (isset($arOdnoklUser['gender']) && $arOdnoklUser['gender'] != '') {
if ($arOdnoklUser['gender'] == 'male') {
$gender = 'M';
} elseif ($arOdnoklUser['gender'] == 'female') {
$gender = 'F';
}
}
$arFields = array('EXTERNAL_AUTH_ID' => self::ID, 'XML_ID' => "OK" . $uid, 'LOGIN' => "OKuser" . $uid, 'NAME' => $first_name, 'LAST_NAME' => $last_name, 'PERSONAL_GENDER' => $gender);
if (isset($arOdnoklUser['birthday'])) {
if ($date = MakeTimeStamp($arOdnoklUser['birthday'], "YYYY-MM-DD")) {
$arFields["PERSONAL_BIRTHDAY"] = ConvertTimeStamp($date);
}
}
if (isset($arOdnoklUser['pic_2']) && self::CheckPhotoURI($arOdnoklUser['pic_2'])) {
if ($arPic = CFile::MakeFileArray($arOdnoklUser['pic_2'] . '&name=/' . md5($arOdnoklUser['pic_2']) . '.jpg')) {
$arFields["PERSONAL_PHOTO"] = $arPic;
}
}
$arFields["PERSONAL_WWW"] = "http://odnoklassniki.ru/profile/" . $uid;
if (strlen(SITE_ID) > 0) {
$arFields["SITE_ID"] = SITE_ID;
}
$bSuccess = $this->AuthorizeUser($arFields);
}
}
}
if (!$bProcessState) {
unset($_REQUEST["state"]);
}
$url = $APPLICATION->GetCurDir() == "/login/" ? "" : $APPLICATION->GetCurDir();
$aRemove = array("logout", "auth_service_error", "auth_service_id", "code", "error_reason", "error", "error_description", "check_key", "current_fieldset");
$mode = 'opener';
if (isset($_REQUEST["state"])) {
$arState = array();
parse_str($_REQUEST["state"], $arState);
if (isset($arState['backurl']) || isset($arState['redirect_url'])) {
$parseUrl = parse_url(!empty($arState['redirect_url']) ? $arState['redirect_url'] : $arState['backurl']);
$urlPath = $parseUrl["path"];
$arUrlQuery = explode('&', $parseUrl["query"]);
foreach ($arUrlQuery as $key => $value) {
foreach ($aRemove as $param) {
if (strpos($value, $param . "=") === 0) {
unset($arUrlQuery[$key]);
break;
}
}
}
$url = !empty($arUrlQuery) ? $urlPath . '?' . implode("&", $arUrlQuery) : $urlPath;
}
if (isset($arState['mode'])) {
$mode = $arState['mode'];
}
}
if ($bSuccess === SOCSERV_REGISTRATION_DENY) {
$url = preg_match("/\\?/", $url) ? $url . '&' : $url . '?';
$url .= 'auth_service_id=' . self::ID . '&auth_service_error=' . SOCSERV_REGISTRATION_DENY;
} elseif ($bSuccess !== true) {
$url = isset($parseUrl) ? $urlPath . '?auth_service_id=' . self::ID . '&auth_service_error=' . $bSuccess : $APPLICATION->GetCurPageParam('auth_service_id=' . self::ID . '&auth_service_error=' . $bSuccess, $aRemove);
}
if (CModule::IncludeModule("socialnetwork") && strpos($url, "current_fieldset=") === false) {
$url = preg_match("/\\?/", $url) ? $url . "¤t_fieldset=SOCSERV" : $url . "?current_fieldset=SOCSERV";
}
$url = CUtil::JSEscape($url);
$location = $mode == "opener" ? 'if(window.opener) window.opener.location = \'' . $url . '\'; window.close();' : ' window.location = \'' . $url . '\';';
$JSScript = '
<script type="text/javascript">
' . $location . '
</script>
';
echo $JSScript;
die;
}
示例5: getFriendsList
public function getFriendsList($limit = 0, $offset = 0)
{
$li = new CLiveIDOAuthInterface();
if(IsModuleInstalled('bitrix24') && defined('BX24_HOST_NAME'))
{
$redirect_uri = self::CONTROLLER_URL."/redirect.php";
}
else
{
$redirect_uri = CSocServUtil::ServerName()."/bitrix/tools/oauth/liveid.php";
}
if($li->GetAccessToken($redirect_uri) !== false)
{
$res = $li->GetCurrentUserFriends($limit, $offset);
}
if(is_array($res) && is_array($res['data']))
{
foreach($res['data'] as $key => $contact)
{
$res['data'][$key]['uid'] = $contact['id'];
$res['data'][$key]['url'] = $this->getProfileUrl($contact['id']);
}
return $res['data'];
}
return false;
}
示例6: GetSettings
public function GetSettings()
{
return array(array("odnoklassniki_appid", GetMessage("socserv_odnoklassniki_client_id"), "", array("text", 40)), array("odnoklassniki_appkey", GetMessage("socserv_odnoklassniki_client_key"), "", array("text", 40)), array("odnoklassniki_appsecret", GetMessage("socserv_odnoklassniki_client_secret"), "", array("text", 40)), array("note" => GetMessage("socserv_odnoklassniki_form_note", array('#URL#' => CSocServUtil::ServerName()))));
}
示例7: Authorize
public function Authorize()
{
$GLOBALS["APPLICATION"]->RestartBuffer();
$bSuccess = 1;
if((isset($_REQUEST["code"]) && $_REQUEST["code"] <> '') && CSocServAuthManager::CheckUniqueKey())
{
$redirect_uri = CSocServUtil::ServerName()."/bitrix/tools/oauth/google.php";
$appID = trim(self::GetOption("google_appid"));
$appSecret = trim(self::GetOption("google_appsecret"));
$gAuth = new CGoogleOAuthInterface($appID, $appSecret, $_REQUEST["code"]);
if($gAuth->GetAccessToken($redirect_uri) !== false)
{
$arGoogleUser = $gAuth->GetCurrentUser();
if($arGoogleUser['feed']['author']['0']['email']['$t'] <> '')
{
$first_name = $last_name = "";
if($arGoogleUser['feed']['author']['0']['name']['$t'] <> '')
{
$aName = explode(" ", $arGoogleUser['feed']['author']['0']['name']['$t']);
$first_name = $aName[0];
if(isset($aName[1]))
$last_name = $aName[1];
}
$email = $arGoogleUser['feed']['author']['0']['email']['$t'];
$arFields = array(
'EXTERNAL_AUTH_ID' => self::ID,
'XML_ID' => $email,
'LOGIN' => "G_".$email,
'EMAIL' => $email,
'NAME'=> $first_name,
'LAST_NAME'=> $last_name,
);
$arFields["PERSONAL_WWW"] = "https://accounts.google.com";
$bSuccess = $this->AuthorizeUser($arFields);
}
}
}
$url = ($GLOBALS["APPLICATION"]->GetCurDir() == "/login/") ? "/auth/" : $GLOBALS["APPLICATION"]->GetCurDir();
if(isset($_REQUEST["state"]))
{
$arState = array();
parse_str($_REQUEST["state"], $arState);
if(isset($arState['backurl']))
$url = parse_url($arState['backurl'], PHP_URL_PATH);
}
$aRemove = array("logout", "auth_service_error", "auth_service_id", "code", "error_reason", "error", "error_description", "check_key");
if(CModule::IncludeModule("socialnetwork"))
$url = (preg_match("/\?/", $url)) ? $url."¤t_fieldset=SOCSERV" : $url."?current_fieldset=SOCSERV";
if($bSuccess !== true)
$url = $GLOBALS['APPLICATION']->GetCurPageParam(('auth_service_id='.self::ID.'&auth_service_error='.$bSuccess), $aRemove);
if($bSuccess === 2)
$url = '/?auth_service_id='.self::ID.'&auth_service_error='.$bSuccess;
echo '
<script type="text/javascript">
if(window.opener)
window.opener.location = \''.CUtil::JSEscape($url).'\';
window.close();
</script>
';
die();
}
示例8: gadgetAuthorize
public function gadgetAuthorize()
{
global $APPLICATION;
$APPLICATION->RestartBuffer();
if (isset($_REQUEST["code"]) && $_REQUEST["code"] != '' && CSocServAuthManager::CheckUniqueKey()) {
CUserOptions::SetOption('socialservices', 'bitrix24_task_planer_gadget_code', $_REQUEST["code"]);
}
$url = CSocServUtil::ServerName() . BX_ROOT;
$mode = 'opener';
$url = CUtil::JSEscape($url);
$location = $mode == "opener" ? 'if(window.opener) window.opener.location = \'' . $url . '\'; window.close();' : ' window.location = \'' . $url . '\';';
$JSScript = '
<script type="text/javascript">
' . $location . '
</script>
';
echo $JSScript;
die;
}
示例9: Authorize
public function Authorize()
{
$GLOBALS["APPLICATION"]->RestartBuffer();
$bSuccess = false;
if((isset($_REQUEST["code"]) && $_REQUEST["code"] <> '') && CSocServAuthManager::CheckUniqueKey())
{
$redirect_uri = CSocServUtil::ServerName()."/bitrix/tools/oauth/google.php";
$appID = self::GetOption("google_appid");
$appSecret = self::GetOption("google_appsecret");
$gAuth = new CGoogleOAuthInterface($appID, $appSecret, $_REQUEST["code"]);
if($gAuth->GetAccessToken($redirect_uri) !== false)
{
$arGoogleUser = $gAuth->GetCurrentUser();
if($arGoogleUser['feed']['author']['0']['email']['$t'] <> '')
{
$first_name = $last_name = "";
if($arGoogleUser['feed']['author']['0']['name']['$t'] <> '')
{
$aName = explode(" ", $arGoogleUser['feed']['author']['0']['name']['$t']);
$first_name = $aName[0];
if(isset($aName[1]))
$last_name = $aName[1];
}
$email = $arGoogleUser['feed']['author']['0']['email']['$t'];
$arFields = array(
'EXTERNAL_AUTH_ID' => self::ID,
'XML_ID' => $email,
'LOGIN' => "G_".$email,
'EMAIL' => $email,
'NAME'=> $first_name,
'LAST_NAME'=> $last_name,
);
$bSuccess = $this->AuthorizeUser($arFields);
}
}
}
$url = '/personal/profile/';
if(isset($_REQUEST["state"]))
{
$arState = array();
parse_str($_REQUEST["state"], $arState);
if(isset($arState['backurl']))
$url = parse_url($arState['backurl'], PHP_URL_PATH);
}
$aRemove = array("logout", "auth_service_error", "auth_service_id", "code", "error_reason", "error", "error_description", "check_key");
if(!$bSuccess)
$url = $GLOBALS['APPLICATION']->GetCurPageParam(('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();
}
示例10: CSocServBitrixOAuth
}
$arGadgetParams = $_SESSION["GD_PLANNER_PARAMS"][$rnd];
CModule::IncludeModule('socialservices');
CSocServAuthManager::SetUniqueKey();
$clientId = $arGadgetParams["APP_ID"];
$clientSecret = $arGadgetParams["APP_SECRET"];
$domain = $portalURI = $arGadgetParams["PORTAL_URI"];
?>
<div class="bx-gadgets-planner">
<?php
if ($clientId == '' || $clientSecret == '' || $portalURI == '') {
exit;
}
$needAuthorize = false;
$accessToken = '';
$redirectURI = CSocServUtil::ServerName() . '/bitrix/tools/oauth/bitrix24.php';
$savedPortalURI = CUserOptions::GetOption('socialservices', 'bitrix24_task_planer_gadget_portal', '', $userId);
$requestCode = CUserOptions::GetOption('socialservices', 'bitrix24_task_planer_gadget_code', '', $userId);
if ($savedPortalURI !== $portalURI || $savedPortalURI == '') {
$needAuthorize = true;
CUserOptions::SetOption('socialservices', 'bitrix24_task_planer_gadget_portal', $portalURI, false, $userId);
}
if (!preg_match('|^http[s]?|', $portalURI)) {
$portalURI = 'https://' . $portalURI;
}
$objBitrixOAuth = new CSocServBitrixOAuth($clientId, $clientSecret, $portalURI, $redirectURI, $userId);
$objBitrixOAuth->addScope(array('task', 'calendar'));
$arTasks = $arEvents = array();
if ($requestCode != '') {
$accessToken = $objBitrixOAuth->getAccessToken($requestCode);
CUserOptions::SetOption('socialservices', 'bitrix24_task_planer_gadget_code', '', false, $userId);
示例11: Authorize
public function Authorize()
{
$GLOBALS["APPLICATION"]->RestartBuffer();
$bSuccess = 1;
if (isset($_REQUEST["code"]) && $_REQUEST["code"] != '' && CSocServAuthManager::CheckUniqueKey()) {
if (IsModuleInstalled('bitrix24') && defined('BX24_HOST_NAME')) {
$redirect_uri = self::CONTROLLER_URL . "/redirect.php";
} else {
$redirect_uri = CSocServUtil::ServerName() . "/bitrix/tools/oauth/google.php";
}
$appID = trim(self::GetOption("google_appid"));
$appSecret = trim(self::GetOption("google_appsecret"));
$gAuth = new CGoogleOAuthInterface($appID, $appSecret, $_REQUEST["code"]);
if ($gAuth->GetAccessToken($redirect_uri) !== false) {
$arGoogleUser = $gAuth->GetCurrentUser();
if ($arGoogleUser['email'] != '') {
$first_name = $last_name = $gender = "";
if ($arGoogleUser['name'] != '') {
$aName = explode(" ", $arGoogleUser['name']);
if ($arGoogleUser['given_name'] != '') {
$first_name = $arGoogleUser['given_name'];
} else {
$first_name = $aName[0];
}
if ($arGoogleUser['family_name'] != '') {
$last_name = $arGoogleUser['family_name'];
} elseif (isset($aName[1])) {
$last_name = $aName[1];
}
}
$email = $arGoogleUser['email'];
if ($arGoogleUser['gender'] != '') {
if ($arGoogleUser['gender'] == 'male') {
$gender = 'M';
} elseif ($arGoogleUser['gender'] == 'female') {
$gender = 'F';
}
}
$arFields = array('EXTERNAL_AUTH_ID' => self::ID, 'XML_ID' => $email, 'LOGIN' => "G_" . $email, 'EMAIL' => $email, 'NAME' => $first_name, 'LAST_NAME' => $last_name);
if ($gender != "") {
$arFields['PERSONAL_GENDER'] = $gender;
}
if (isset($arGoogleUser['picture']) && self::CheckPhotoURI($arGoogleUser['picture'])) {
if ($arPic = CFile::MakeFileArray($arGoogleUser['picture'])) {
$arFields["PERSONAL_PHOTO"] = $arPic;
}
}
$arFields["PERSONAL_WWW"] = $arGoogleUser['link'];
if (strlen(SITE_ID) > 0) {
$arFields["SITE_ID"] = SITE_ID;
}
$bSuccess = $this->AuthorizeUser($arFields);
}
}
}
$url = $GLOBALS["APPLICATION"]->GetCurDir() == "/login/" ? "/auth/" : $GLOBALS["APPLICATION"]->GetCurDir();
if (isset($_REQUEST["state"])) {
$arState = array();
parse_str($_REQUEST["state"], $arState);
if (isset($arState['backurl'])) {
$parseUrl = parse_url($arState['backurl'], PHP_URL_PATH);
$url = $parseUrl;
}
}
$aRemove = array("logout", "auth_service_error", "auth_service_id", "code", "error_reason", "error", "error_description", "check_key", "current_fieldset");
if ($bSuccess === 2) {
$url = preg_match("/\\?/", $url) ? $url . '&' : $url . '?';
$url .= 'auth_service_id=' . self::ID . '&auth_service_error=' . $bSuccess;
} elseif ($bSuccess !== true) {
$url = isset($parseUrl) ? $parseUrl . '?auth_service_id=' . self::ID . '&auth_service_error=' . $bSuccess : $GLOBALS['APPLICATION']->GetCurPageParam('auth_service_id=' . self::ID . '&auth_service_error=' . $bSuccess, $aRemove);
}
if (CModule::IncludeModule("socialnetwork")) {
$url = preg_match("/\\?/", $url) ? $url . "¤t_fieldset=SOCSERV" : $url . "?current_fieldset=SOCSERV";
}
echo '
<script type="text/javascript">
if(window.opener)
window.opener.location = \'' . CUtil::JSEscape($url) . '\';
window.close();
</script>
';
die;
}
示例12: Authorize
public function Authorize()
{
global $APPLICATION;
$APPLICATION->RestartBuffer();
$bSuccess = SOCSERV_AUTHORISATION_ERROR;
if (isset($_REQUEST["code"]) && $_REQUEST["code"] != '' && CSocServAuthManager::CheckUniqueKey()) {
if (IsModuleInstalled('bitrix24') && defined('BX24_HOST_NAME')) {
$redirect_uri = self::CONTROLLER_URL . "/redirect.php";
} else {
$redirect_uri = CSocServUtil::ServerName() . "/bitrix/tools/oauth/liveid.php";
}
$appID = trim(self::GetOption("liveid_appid"));
$appSecret = trim(self::GetOption("liveid_appsecret"));
$gAuth = new CLiveIDOAuthInterface($appID, $appSecret, $_REQUEST["code"]);
if ($gAuth->GetAccessToken($redirect_uri) !== false) {
$arLiveIDUser = $gAuth->GetCurrentUser();
if (is_array($arLiveIDUser) && $arLiveIDUser['id'] != '') {
$email = $first_name = $last_name = "";
$login = "LiveID" . $arLiveIDUser['id'];
$uId = $arLiveIDUser['id'];
if ($arLiveIDUser['first_name'] != '') {
$first_name = $arLiveIDUser['first_name'];
}
if ($arLiveIDUser['last_name'] != '') {
$last_name = $arLiveIDUser['last_name'];
}
if ($arLiveIDUser['emails']['preferred'] != '') {
$email = $arLiveIDUser['emails']['preferred'];
$login = $arLiveIDUser['emails']['preferred'];
$uId = $arLiveIDUser['emails']['preferred'];
}
$arFields = array('EXTERNAL_AUTH_ID' => self::ID, 'XML_ID' => $uId, 'LOGIN' => $login, 'EMAIL' => $email, 'NAME' => $first_name, 'LAST_NAME' => $last_name);
$arFields["PERSONAL_WWW"] = $arLiveIDUser["link"];
if (isset($arLiveIDUser['access_token'])) {
$arFields["OATOKEN"] = $arLiveIDUser['access_token'];
}
if (isset($arLiveIDUser['refresh_token'])) {
$arFields["REFRESH_TOKEN"] = $arLiveIDUser['refresh_token'];
}
if (isset($arLiveIDUser['expires_in'])) {
$arFields["OATOKEN_EXPIRES"] = time() + $arLiveIDUser['expires_in'];
}
if (strlen(SITE_ID) > 0) {
$arFields["SITE_ID"] = SITE_ID;
}
$bSuccess = $this->AuthorizeUser($arFields);
}
}
}
$url = $APPLICATION->GetCurDir() == "/login/" ? "" : $APPLICATION->GetCurDir();
$aRemove = array("logout", "auth_service_error", "auth_service_id", "code", "error_reason", "error", "error_description", "check_key", "current_fieldset");
$mode = 'opener';
if (isset($_REQUEST["state"])) {
$arState = array();
parse_str($_REQUEST["state"], $arState);
if (isset($arState['backurl'])) {
$parseUrl = parse_url($arState['backurl']);
$urlPath = $parseUrl["path"];
$arUrlQuery = explode('&', $parseUrl["query"]);
foreach ($arUrlQuery as $key => $value) {
foreach ($aRemove as $param) {
if (strpos($value, $param . "=") === 0) {
unset($arUrlQuery[$key]);
break;
}
}
}
$url = !empty($arUrlQuery) ? $urlPath . '?' . implode("&", $arUrlQuery) : $urlPath;
}
if (isset($arState['mode'])) {
$mode = $arState['mode'];
}
}
if ($bSuccess === SOCSERV_REGISTRATION_DENY) {
$url = preg_match("/\\?/", $url) ? $url . '&' : $url . '?';
$url .= 'auth_service_id=' . self::ID . '&auth_service_error=' . SOCSERV_REGISTRATION_DENY;
} elseif ($bSuccess !== true) {
$url = isset($parseUrl) ? $parseUrl . '?auth_service_id=' . self::ID . '&auth_service_error=' . $bSuccess : $APPLICATION->GetCurPageParam('auth_service_id=' . self::ID . '&auth_service_error=' . $bSuccess, $aRemove);
}
if (CModule::IncludeModule("socialnetwork") && strpos($url, "current_fieldset=") === false) {
$url = preg_match("/\\?/", $url) ? $url . "¤t_fieldset=SOCSERV" : $url . "?current_fieldset=SOCSERV";
}
$url = CUtil::JSEscape($url);
$location = $mode == "opener" ? 'if(window.opener) window.opener.location = \'' . $url . '\'; window.close();' : ' window.location = \'' . $url . '\';';
$JSScript = '
<script type="text/javascript">
' . $location . '
</script>
';
echo $JSScript;
die;
}
示例13: GetRedirectURI
public function GetRedirectURI()
{
return CSocServUtil::ServerName(true) . "/bitrix/tools/oauth/dropbox.php";
}
示例14: getFriendsList
public function getFriendsList($limit, &$next)
{
if (IsModuleInstalled('bitrix24') && defined('BX24_HOST_NAME')) {
$redirect_uri = static::CONTROLLER_URL . "/redirect.php";
} else {
$redirect_uri = CSocServUtil::ServerName() . "/bitrix/tools/oauth/google.php";
}
$ob = $this->getEntityOAuth();
if ($ob->GetAccessToken($redirect_uri) !== false) {
$res = $ob->getCurrentUserFriends($limit, $next);
foreach ($res as $key => $contact) {
$contact['uid'] = $contact['email'];
$arName = $contact['name'];
$contact['first_name'] = trim($arName['givenName']);
$contact['last_name'] = trim($arName['familyName']);
$contact['second_name'] = trim($arName['additionalName']);
if (!$contact['first_name'] && !$contact['last_name']) {
$contact['first_name'] = $contact['uid'];
}
$res[$key] = $contact;
}
}
return $res;
}
示例15: GetRedirectURI
public function GetRedirectURI()
{
return CSocServUtil::ServerName() . "/bitrix/tools/oauth/yandex.php";
}