php facebook api getAccessToken和setExtendedAccessToken

时间:2014-07-21 18:59:35

标签: php facebook

我正在使用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>';
        }
    }

}

1 个答案:

答案 0 :(得分:0)

您正在调用帮助程序来获取访问令牌,您需要从$ session

调用它

$会话而&GT; getAccessToken()

此外,如果您只想要令牌本身而不是accessToken对象

$会话而&GT;为gettoken();