加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

如何使用PHP更新/扩展Facebook访问令牌?

发布时间:2020-12-13 14:03:00 所属栏目:PHP教程 来源:网络整理
导读:Facebook已经删除了offline_access令牌功能,当用户访问您的网站以保持活动时,现在必须更新令牌. 说有人已经给你的网站访问,并且为他们存储了一个令牌.您将使用什么代码与Facebook的PHP库来更新该令牌? 您可以通过以下方式扩展您的令牌: 原始情景 您的应用
Facebook已经删除了offline_access令牌功能,当用户访问您的网站以保持活动时,现在必须更新令牌.

说有人已经给你的网站访问,并且为他们存储了一个令牌.您将使用什么代码与Facebook的PHP库来更新该令牌?

您可以通过以下方式扩展您的令牌:

原始情景

>您的应用程序请求用户的权限
您提示用户登录/授予权限
>您可以通过CURL或其他手段获得用户令牌(短命),并使用grant_type = fb_exchange_token
>你坚持令牌

现在你有这样的理由去做你想要的,最多60天.最后,由于用户可以更改密码,取消授权应用等,令牌将无效.扩展令牌可以做的是每个用户到达您的页面,您可以检查他们是否通过javascript登录,如果是,请对您的服务器进行ajax调用,将现有令牌从60天延长今天.您可以按需要拨打多个电话,只有第一个有效.这是我如何做到的:

>在加载事件的某个地方,在你的页面上添加如下:

FB.getLoginStatus(function (response) {
     if (response.status === 'connected') {
        $.ajax({
            type: "POST",async: false,url: YOUR_URL,dataType: "text",data: {token  : response.authResponse.accessToken }
         });
     }
 });
         //rest of jquery ajax call here

这将为用户获取新的客户端访问令牌并将其发送到服务器

>服务器可以拿这个令牌并交换一个60天的一个

$token_url = "https://graph.facebook.com/oauth/access_token?client_id=".FACEBOOK_CLIENT_ID."&client_secret=".FACEBOOK_SECRET."&grant_type=fb_exchange_token&fb_exchange_token=".$token;

$c = curl_init();
curl_setopt($c,CURLOPT_RETURNTRANSFER,1);
curl_setopt($c,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($c,CURLOPT_URL,$token_url);
$contents = curl_exec($c);
$err  = curl_getinfo($c,CURLINFO_HTTP_CODE);
curl_close($c);

$paramsfb = null;
parse_str($contents,$paramsfb);

参考:

https://developers.facebook.com/roadmap/offline-access-removal/

如果用户在60天内回到??您的网站,则只会扩展令牌.如果没有,您将需要再次提示权限.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读