Facebook Oauth访问令牌使用Graph API Explorer时有所不同

时间:2012-02-01 16:56:38

标签: 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 1234567.89亿| TR528Smvi4AXMM21Zhmi5XmJwmk

如果我尝试访问受此标记保护的粉丝页面,我会回复:http://graph.facebook.com/109813019043531?access_token=123456789000000|TR528Smvi4AXMM21Zhmi5XmJwmk

现在,如果我使用Graph API Explorer并选择与我上面使用的App相同的App来生成访问令牌,我会得到一个如下所示的访问令牌:

ABBDSqE43jFSSbrS7ujvyLZClfyKDCZBhAuLXTtr9nwelj4MFwlijzejljEoNItC3lijzm3shemzq3jDFCdAZD

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

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

1 个答案:

答案 0 :(得分:13)

您展示的第一个是APP访问令牌。 Graph API Explorer中的第二个是USER访问令牌。还有第三种称为PAGE访问令牌的类型。每个人都做不同的事。

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

USER访问令牌会提供给您的应用,它们与特定应用用户授予您的应用的权限相关,因此您的应用可以代表他们行事。

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

如果您有访问令牌,并且想要了解有关它的更多信息,请将其隐藏在https://developers.facebook.com/tools/lint

有关访问令牌的详细信息,请参阅:https://developers.facebook.com/docs/authentication