setExtendedAccessToken

setExtendedAccessToken

我尝试使用以下方法获取扩展的长期访问 token

$facebook->setExtendedAccessToken();
$access_token = $facebook->getAccessToken();

查看SDK之后,我发现setExtendedAccessToken()函数正在设置长期访问 token
protected static $kSupportedKeys =
array('state', 'code', 'access_token', 'user_id');


$this->setPersistentData(
  'access_token', $response_params['access_token']
);

并且getAccessToken()从中返回短期访问 token
protected $accessToken

那么setExtendedAccessToken()的目的是什么,因为它不返回任何内容?

最佳答案

@朱利安非常感谢您的启发。
我能够在不更改任何核心FB api文件的情况下完成这项工作。

发生的是,setExtendedAccessToken调用将值发送到setPersistentData,然后通过constructSessionVariableName将其发送到 session 中。

因此,如果我们退出 session ,然后将其设置到facebook对象中,则一切就绪。

这是我的代码:

// ask for the extended token and get it from session ...
$facebook->setExtendedAccessToken();
$access_token = $_SESSION["fb_".FB_APP_ID."_access_token"];
// now set it into the facebook object ....
$facebook->setAccessToken($access_token);
// now our fb object will use the new token as usual ...
$accessToken = $facebook->getAccessToken();

关于php - 使用setExtendedAccessToken()获取生命周期长的访问 token 将返回生命周期短的 token ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12196958/

10-10 14:38