<?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(); }
<?php require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; CModule::IncludeModule("socialservices"); global $USER; $USER_ID = $USER::GetID(); $FBAppId = CSocServFacebook::GetOption("facebook_appid"); $FBKey = CSocServFacebook::GetOption("facebook_appsecret"); $fb_token = false; //var_dump($_SERVER);exit; if (!empty($_GET['code'])) { $FBCode = $_GET['code']; if (!$fb_token) { // получим токен $sUrl = "https://graph.facebook.com/oauth/access_token?client_id={$FBAppId}&client_secret={$FBKey}&code={$FBCode}&redirect_uri=" . urlencode("http://" . MAINSERVER . "/auth/facebook/" . $_GET["r"]); $oResponce = file_get_contents($sUrl); $arToken = array(); parse_str($oResponce, $arToken); //Пишем токен в базу $fb_token = $_SESSION['fb_access_token'] = $fb_token ? $fb_token : $arToken['access_token']; } //Получаем Id пользователя Фэйсбука $uUrl = "https://graph.facebook.com/me?access_token={$fb_token}"; $uResponse = file_get_contents($uUrl); $UserData = json_decode($uResponse); $UserDataSerialized = serialize($UserData); $arFileds = (array) unserialize($UserDataSerialized); // gender] => male // graph.facebook.com/tabotaOG/picture?type=large // printAr($arFileds); if (!$USER_ID) {
public static function userRegister($params) { $loger = new CLoger('register'); if (!$params["NAME"]) { $params["NAME"] = $params["LOGIN"]; } if ($params["EXTERNAL_AUTH_ID"] == "socservices") { CModule::IncludeModule("socialservices"); if (strpos($params["PERSONAL_WWW"], "://twitter.com/") !== false) { $serv_name = "twitter"; $appID = trim(self::GetOption("twitter_key")); $appSecret = trim(self::GetOption("twitter_secret")); } elseif (strpos($params["PERSONAL_WWW"], "://www.facebook.com/") !== false) { require_once FACEBOOK_SDK_V4_SRC_AUTOLOAD; $serv_name = "facebook"; $appID = trim(CSocServFacebook::GetOption("facebook_appid")); $appSecret = trim(CSocServFacebook::GetOption("facebook_appsecret")); echo FACEBOOK_SDK_V4_SRC_AUTOLOAD; FacebookSession::setDefaultApplication($appID, $appSecret); $session = new FacebookSession($params["OATOKEN"]); $session->validate(); $fbreq = new Facebook\FacebookRequest($session, 'GET', '/me', array("fields" => "token_for_business,link,email,name")); $token_for_business = $fbreq->execute()->getGraphObject(GraphUser::className())->getProperty('token_for_business'); $social_info = '{"' . $serv_name . '": {"social_app_id": "' . $appID . '", "social_id": "' . $params["XML_ID"] . '","token_for_business":"' . $token_for_business . '"}}'; //$loger->Add('social_info'.$social_info); } elseif (strpos($params["PERSONAL_WWW"], "://vk.com/") !== false) { $serv_name = "vkontakte"; $appID = trim(CSocServVKontakte::GetOption("vkontakte_appid")); $appSecret = trim(CSocServVKontakte::GetOption("vkontakte_appsecret")); } elseif (strpos($params["PERSONAL_WWW"], "://odnoklassniki.ru/") !== false) { $serv_name = "odnoklassniki"; $appID = trim(self::GetOption("odnoklassniki_appid")); $appSecret = trim(self::GetOption("odnoklassniki_appsecret")); $appKey = trim(self::GetOption("odnoklassniki_appkey")); } $params_vm = array("authorization" => "true", "name" => $params["NAME"], "social_info" => '{"' . $serv_name . '": {"social_app_id": "' . $appID . '", "social_id": "' . $params["XML_ID"] . '"}}'); if ($social_info) { $params_vm["social_info"] = $social_info; } } else { $params_vm = array("authorization" => "true", "name" => $params["NAME"], "email" => $params["EMAIL"], "password" => $params["CONFIRM_PASSWORD"]); } $loger->Add('q', $params_vm); return self::getInstance()->buildRequest("register_user", $params_vm, 'json', 'post'); }
public function __construct($appID = false, $appSecret = false, $code = false) { if ($appID === false) { $appID = trim(CSocServFacebook::GetOption("facebook_appid")); } if ($appSecret === false) { $appSecret = trim(CSocServFacebook::GetOption("facebook_appsecret")); } parent::__construct($appID, $appSecret, $code); }
<?php //require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php"); require_once $_SERVER["DOCUMENT_ROOT"] . "/bitrix/modules/main/include/prolog_before.php"; CModule::IncludeModule("socialservices"); /** * Created by JetBrains PhpStorm. * User: vchebanenko * Date: 25.10.11 * Time: 11:58 * To change this template use File | Settings | File Templates. */ global $USER; $USER_ID = $USER::GetID(); $vkontakteApplicationId = CSocServFacebook::GetOption("vkontakte_appid"); $vkontakteKey = CSocServFacebook::GetOption("vkontakte_appsecret"); // ID юзера, к которому должно подключаться приложение if (!empty($_GET['code'])) { // вконтакт присылает нам код $vkontakteCode = $_GET['code']; // получим токен $sUrl = "https://api.vkontakte.ru/oauth/access_token?client_id={$vkontakteApplicationId}&client_secret={$vkontakteKey}&code={$vkontakteCode}"; // создадим объект, содержащий ответ сервера Вконтакте, который приходит в формате JSON $oResponce = json_decode(file_get_contents($sUrl)); //var_dump($oResponce); //Пишем токен в базу и в сессию пользователя $vk_token = $_SESSION['vk_access_token'] = $oResponce->access_token; $vk_userid = $oResponce->user_id; // строка запроса к серверу Вконтакте //Получаем друзей пользователя $fRequest = "https://api.vkontakte.ru/method/friends.get?uid={$vk_userid}=&access_token={$vk_token}&fields=photo,first_name";
public function __construct($appID = false, $appSecret = false, $code = false) { if ($appID === false) { $appID = trim(CSocServFacebook::GetOption("facebook_appid")); } if ($appSecret === false) { $appSecret = trim(CSocServFacebook::GetOption("facebook_appsecret")); } $this->httpTimeout = SOCSERV_DEFAULT_HTTP_TIMEOUT; $this->appID = $appID; $this->appSecret = $appSecret; $this->code = $code; }