PHP 的 fb_exchange_token 仅在用户删除应用程序后才有效

Posted

技术标签:

【中文标题】PHP 的 fb_exchange_token 仅在用户删除应用程序后才有效【英文标题】:fb_exchange_token for PHP only working once user removes app 【发布时间】:2012-02-16 18:57:45 【问题描述】:

对于我正在构建的 Facebook 应用程序,我需要比默认的 1 到 2 小时更长的时间。

我不想使用“offline_access”,因为它使人们无法注册该应用程序并且现在已被贬值。

在开发者路线图中,它谈到了“fb_exchange_token”,它将访问令牌的有效期延长至 1 个月。

流程是:

登录用户

调用 .../oauth/access_token?...&grant_type=fb_exchange_token&fb_exchange_token=...

访问令牌现在为 1 个月

这适用于所有新用户,以及从 Facebook 帐户中删除应用并重新添加的用户,但对于我们现有的客户群,它不起作用。

我已经尝试了各种方法,包括向登录脚本添加其他权限以强制验证窗口,但没有运气。

我已按照文档中的说明为 Facebook 应用添加了正确的高级/迁移设置。除了开发博客之外,这似乎没有太多帮助。

任何帮助将不胜感激。

仅供参考:我使用的是最新的 php SDK,获取新访问令牌的代码只是指向以下 url 的标准 cURL 请求:

https://graph.facebook.com/oauth/access_token?client_id=APPID&client_secret=APPSECRET&grant_type=fb_exchange_token&fb_exchange_token=ACCESSTOKEN

再次感谢

【问题讨论】:

【参考方案1】:

我一直面临这个问题,发现刚刚对我有用的是从我的个人资料中删除应用程序并重新添加应用程序,这样我就可以生成一个 60 天的令牌。

【讨论】:

【参考方案2】:

我也有同样的问题。我注意到的另一件事:之前拥有offline_access 权限的用户也可以获得60 天令牌,以及新授权的用户。

我打开了一个bug,试图得到FB的回复:https://developers.facebook.com/bugs/241373692605971

【讨论】:

以上是关于PHP 的 fb_exchange_token 仅在用户删除应用程序后才有效的主要内容,如果未能解决你的问题,请参考以下文章

PHP 仅列出PHP文件夹中的某些文件

仅输出特定节点 PHP XML

PHP - 仅使用 Facebook 图表从 Facebook 页面获取帖子数据

如何仅在 PHP 中限制某些特殊字符?

为啥 PHP 的 foreach 将其数组的指针(仅)推进一次?

为啥 PHP 的 foreach 将其数组的指针(仅)推进一次?