简体   繁体   English

php facebook api getAccessToken和setExtendedAccessToken

[英]php facebook api getAccessToken and setExtendedAccessToken

I'm using the facebook sdk to get a users accessToken and set a long term session (by keeping the key in a database) so they don't have to allow access to the app each time. 我正在使用facebook sdk获取用户accessToken并设置长期会话(通过将密钥保留在数据库中),这样他们就不必每次都允许访问该应用程序。

I'm trying to get the access token but I'm getting 我正在尝试获取访问令牌,但我正在获取

[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} [] []

My code 我的密码

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>';
        }
    }

}

You are calling the helper to get the access token, you need to be calling that from $session 您正在呼叫帮助程序以获取访问令牌,您需要从$ session进行呼叫

$session->getAccessToken() $ session-> getAccessToken()

Also if you just want the token itself and not the accessToken object 另外,如果您只想要令牌本身而不是accessToken对象

$session->getToken(); $ session-> getToken();

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM