Facebook PHP SDK v4 получить текущий доступ

У меня нет проблем с получением FacebookSession с getSessionFromRedirect() функция, но у меня проблема с возвратом токена из него.

Facebook\FacebookSession::setDefaultApplication(
Config::get('api/facebook/app_id'),
Config::get('api/facebook/app_secret')
);

$fb = new Facebook\FacebookRedirectLoginHelper(Config::get('api/facebook/url'));

if(Session::exists(Config::get('session/facebook'))) {
//echo Session::get(Config::get('session/facebook'));
$session = Session::get(Config::get('session/facebook'));
} else {
$session = $fb->getSessionFromRedirect();
var_dump($session);
//Session::put(Config::get('session/facebook'), $session->getToken());
}

if(isset($session)) {

//Do Facebook stuff here

} else {
$params = array(
'scope' => 'email, user_birthday'
);
echo "<a href='".$fb->getLoginUrl($params)."'>Login</a>";
}

Как вы можете видеть, я играл с объектом FacebookSession, как var_dumpно я все еще не могу получить знак. Я прочитал документы, и у объекта FacebookSession есть getToken() функция, но это, кажется, не работает для меня.

Вот что я получаю после сброса сессии

object(Facebook\FacebookSession)#9 (2) { ["accessToken":"Facebook\FacebookSession":private]=> object(Facebook\Entities\AccessToken)#4 (3) { ["accessToken":protected]=> string(220) "*INSERT TOKEN HERE, THIS WAS REPLACED FOR THE QUESTION*" ["machineId":protected]=> NULL ["expiresAt":protected]=> NULL } ["signedRequest":"Facebook\FacebookSession":private]=> NULL }

0

Решение

Вы должны написать session_start поверх вашего скрипта, чтобы он работал
так будет как

<?php
session_start();
Facebook\FacebookSession::setDefaultApplication(
Config::get('api/facebook/app_id'),
Config::get('api/facebook/app_secret')
);
0

Другие решения

Я на самом деле в конечном итоге выяснить это. У меня уже был файл инициализации, который работал session_start() для меня, так что это не так.

Facebook\FacebookSession::setDefaultApplication(
Config::get('api/facebook/app_id'),
Config::get('api/facebook/app_secret')
);

$fb = new Facebook\FacebookRedirectLoginHelper(Config::get('api/facebook/url'));

if(Session::exists(Config::get('session/facebook'))) {
$session = new Facebook\FacebookSession(Session::get(Config::get('session/facebook')));
} else {
$session = $fb->getSessionFromRedirect();
}

if(isset($session)) {
if(!Session::exists(Config::get('session/facebook'))) {
Session::put(Config::get('session/facebook'), $session->getToken());
}
//Do Facebook stuff here

} else {
$params = array(
'scope' => 'email, user_birthday'
);
echo "<a href='".$fb->getLoginUrl($params)."'>Login</a>";
}

Поскольку страница не обновилась, $session переменная еще не была реальным объектом, я просто должен был поместить ее один раз isset($session) назывался

0

По вопросам рекламы [email protected]