如何避免访问令牌facebook失效

时间:2014-01-09 13:11:07

标签: php facebook facebook-graph-api facebook-access-token

我知道有更多类似的问题,但我读的越多,我得到的就越混乱。

http://www.palloskar.is/blog/?tezt

我通过api(https://developers.facebook.com/tools/explorer/?method=GET&path=24873774107%2Fposts

收到他的帖子

这一切都很好,但访问令牌到期,我没有使用PHP SDK。

我如何才能长期完成这项工作?为什么我甚至需要访问令牌才能获得公开的内容? https://www.facebook.com/24873774107

我是否需要制作具有此令牌的应用,或者我是否需要制作长期令牌?或者我是否需要艺术家制作令牌?或者我需要使用SDK吗?

无论答案是什么,我认为获得PUBLIC帖子有点傻,但如果有人能以最简单的方式告诉我这样做。我将非常感激。

1 个答案:

答案 0 :(得分:2)

您注意到,对于公共信息,您不需要访问令牌。只要您尝试访问字段,就需要访问令牌。

Facebook在谈到权限时可能有点混乱,但让我稍微解释一下。

总共有四种令牌,我深入了解其中两种。

用户访问令牌

当您尝试代表用户执行操作时,您需要确保用户允许访问才能执行此操作。例如,阅读用户Feed,代表用户发布评论等

这些令牌很快就会过期,您需要续订它们,或者请求使用寿命更长的用户访问令牌(长期访问令牌)。

由于这不是您尝试做的事情,因此您不需要用户访问令牌。您正在尝试阅读页面的供稿。

应用访问令牌

当您代表您的应用执行操作时,通常会使用这种令牌。所以说:用户与通过应用访问令牌执行的操作无关(例如,阅读公共页面的评论等)。

应用访问令牌的特殊之处在于它不会过期。它会持续很长时间,因此您可以确保使用您的应用访问令牌执行的操作不需要其他机制来检查到期时间。

因此,当您需要获取公共信息时,请使用您的应用访问令牌。 确实,您必须创建一个应用程序才能使用应用程序访问令牌。

要获取令牌,您可以查询图表:

https://graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials

(见https://developers.facebook.com/docs/opengraph/howtos/publishing-with-app-token/

或使用API​​ Explorer。见下图。

Access Token

只要您获得了访问令牌,就可以提出您想要的请求。我举个例子:

https://graph.facebook.com/24873774107/posts?access_token=417941515002115|qxJFxIU0vMKTPZZrvhJmIcix-7c

正如您所看到的,我查询了图表并通过了我的app访问令牌。现在我没有得到oauth异常但是我想要的数据。


我知道facebook身份验证是一个很难的主题,但是一旦你理解了它,它就是小菜一碟。

给它一个读数:https://developers.facebook.com/docs/facebook-login/access-tokens/

快乐的编码!

相关问题