Beispiel #1
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();
}
Beispiel #2
0
<?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) {
Beispiel #3
0
 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');
 }
Beispiel #4
0
 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);
 }
Beispiel #5
0
<?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";
Beispiel #6
0
 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;
 }