我正在使用facebook sdk来获取用户accessToken并设置一个长期会话(通过将密钥保存在数据库中),这样他们就不必每次都允许访问该应用程序。
我正在尝试获取访问令牌,但我正在
[2014-07-21 18:56:18] production.ERROR: exception 'Symfony\Component\Debug\Exception\FatalErrorException' with message 'Call to undefined method Facebook\FacebookRedirectLoginHelper::getAccessToken()' in /var/www/app/controllers/FacebookController.php:45
Stack trace:
#0 [internal function]: Illuminate\Exception\Handler->handleShutdown()
#1 {main} [] []
我的代码
session_start();
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRequestException;
use Facebook\FacebookRedirectLoginHelper;
class FacebookController extends \BaseController {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
FacebookSession::setDefaultApplication('xxx','xxx');
$helper = new FacebookRedirectLoginHelper('http://test.dev/index.php/facebook');
try {
$session = $helper->getSessionFromRedirect();
echo 'test 1';
} catch(FacebookRequestException $ex) {
// When Facebook returns an error
echo 'test 2';
echo '<pre>' , print_r($ex) , ' </pre>';
} catch(\Exception $ex) {
// When validation fails or other local issues
echo 'test 3';
echo '<pre>' , print_r($ex) , ' </pre>';
}
if ($session) {
// Logged in
echo 'logged in';
print_r($helper->getAccessToken());
}else {
echo 'not logged in ';
$loginUrl = $helper->getLoginUrl();
echo '<a href="'.$loginUrl.'user_photos">Login</a>';
}
}
}
答案 0 :(得分:0)
您正在调用帮助程序来获取访问令牌,您需要从$ session
调用它$会话而&GT; getAccessToken()
此外,如果您只想要令牌本身而不是accessToken对象
$会话而&GT;为gettoken();