使用 Graph API Explorer 时 Facebook Oauth 访问 token 不同

标签 facebook facebook-graph-api access-token

(免责声明:这篇文章中的 access_tokens 和 appIds 是假的,只是为了让看起来真实)

我正在尝试使用对以下内容的调用来生成 access_token:

https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=123456789000000&client_secret=03252f2ff1eddffe234a0dc7256abb8c

这给了我一个这种格式的 access_token:

access_token=123456789000000|TR528Smvi4AXMM21Zhmi5XmJwmk

如果我尝试像这样访问受该 token 保护的粉丝页面,我会得到错误回复:http://graph.facebook.com/109813019043531?access_token=123456789000000|TR528Smvi4AXMM21Zhmi5XmJwmk

现在,如果我使用 Graph API Explorer 并选择与我在上面使用的应用程序相同的应用程序来生成访问 token ,我将获得如下所示的访问 token :

ABBDSqE43jFSSbrS7ujvyLZClfyKDCZBhAuLXTtr9nwelj4MFwlijzejljEoNItC3lijzm3shemzq3jDFCdAZD

如果我使用该访问 token 访问 URL (http://graph.facebook.com/109813019043531),它会按预期工作。

我的问题是,两者之间有什么区别,我如何以编程方式生成一个与第二个 token 一样工作的 token ?

最佳答案

您显示的第一个是应用程序访问 token 。 Graph API Explorer 中的第二个是用户访问 token 。还有第三种类型称为 PAGE 访问 token 。每个人做一些不同的事情。

APP 访问 token 用于获取您的应用有权访问的信息。在某些情况下,如果应用用户授予 publish_stream,您可以使用它发布到该用户的墙上,而无需用户访问 token 。

用户访问 token 是为您的应用提供的,它们与特定应用用户授予您的应用的权限有关,因此您的应用可以代表他们行事。

PAGE 访问 token 提供给页面管理员,以便他们可以代表页面进行操作。要从用户访问 token 转到页面访问 token ,请使用用户访问 token 调用 /me/accounts 以获取他们管理的页面列表以及每个页面访问 token 。

如果您有访问 token 并且想了解更多信息,请在 https://developers.facebook.com/tools/lint 对其进行 lint

有关访问 token 的更多信息,请参阅:https://developers.facebook.com/docs/authentication

关于使用 Graph API Explorer 时 Facebook Oauth 访问 token 不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9099873/

相关文章:

c# PayPal Access Token 不返回任何东西,尽管连接是 "OK"

python - 使用python向facebook上的人发送消息

java - Facebook sdk 图响应为空

facebook - 为 Facebook 应用程序选择 Graph API 或旧的 REST API

php - 简单的 "facebook.php"不工作

facebook-graph-api - 可访问的 Facebook Like 按钮

facebook - 上传过去日期的照片

php - 如何使用 PHP 发布到 Facebook 页面

Facebook:从 native 桌面应用程序刷新长期 token

java - 如何从 Foursquare 获取访问 token ?