首页 > 后端开发 > php教程 > Offline_access 弃用后如何获取长期 Facebook 访问令牌?

Offline_access 弃用后如何获取长期 Facebook 访问令牌?

Linda Hamilton
发布: 2024-11-29 07:02:14
原创
576 人浏览过

How to Obtain Long-Lived Facebook Access Tokens After Offline_access Deprecation?

尽管 Offline_access 已弃用,如何扩展访问令牌的有效性

问题:

Facebook 弃用Offline_access 权限阻碍了我们获取长期访问权限的能力代币。尽管文档表明服务器端 OAuth 令牌将保持长期有效,但事实并非如此。

答案:

编辑(2012 年 8 月 14 日) ):

官方 Facebook PHP SDK 已更新,引入修订版setExtendedAccessToken 函数。为了减轻潜在的会话重复问题,需要在函数执行时终止当前会话。此外,它在内部存储新的访问令牌,允许通过公共 getAccessToken 函数进行检索。从 Facebook PHP SDK GitHub 页面获取最新的 SDK。

原始答案:

base_facebook.php 中添加了一个新颖的公共函数,该函数授予对 60 的访问权限天可更新访问令牌。在正常访问令牌接收后实现此功能可能就足够了。此外,在开发者应用程序的高级设置中启用“弃用离线访问”被认为是必要的。

将以下代码插入 facebook 类中的 base_facebook.php 并调用该函数:

public function getExtendedAccessToken(){

    try {
        // need to circumvent json_decode by calling _oauthRequest
          // directly, since response isn't JSON format.
        $access_token_response =
            $this->_oauthRequest(
                $this->getUrl('graph', '/oauth/access_token'), array(
                    'client_id' => $this->getAppId(),
                    'client_secret' => $this->getAppSecret(),
                    'grant_type'=>'fb_exchange_token',
                    'fb_exchange_token'=>$this->getAccessToken()
                )
            );
    } catch (FacebookApiException $e) {
      // most likely that user very recently revoked authorization.
      // In any event, we don't have an access token, so say so.
      return false;
    }

    if (empty($access_token_response)) {
      return false;
    }

    $response_params = array();
    parse_str($access_token_response, $response_params);
    if (!isset($response_params['access_token'])) {
      return false;
    }

    return $response_params['access_token'];
}
登录后复制

以上是Offline_access 弃用后如何获取长期 Facebook 访问令牌?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板