4

我正在为 Facebook 使用非官方的 python sdk。这适用于很多图形 api 调用,但我最近的项目需要使用更多 FQL。某些表(例如通知)需要用户访问令牌而不是应用程序访问令牌。

使用时

graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_A‌​PP_SECRET&grant_type=client_credentials 

看来我只得到了一个 App 令牌。因此,当调用通知表时,我会收到“102:请求此资源需要用户访问令牌”

这个项目根本不使用浏览器,主要是为了验证通知,以及从另一个应用程序生成的帖子。

在这种情况下,接收用户令牌的最佳方式是什么?

谢谢 N

4

1 回答 1

13

如果没有登录用户使用 facebook 身份验证流程与您的应用程序直接交互,您将无法获取用户访问令牌。唯一可以在没有用户的情况下获得的令牌是应用程序令牌,您已经了解了这一点。

您可以手动创建用户令牌,我认为最简单的方法是使用Graph Explorer tool。只需在右上角选择您的应用程序,然后单击“获取访问令牌”按钮,然后您可以检查所需的权限,然后生成的令牌将出现在文本框中,复制并使用它。

问题在于访问令牌是短暂的(几个小时),如果您需要更长的时间,我建议您创建一个仅实现服务器端身份验证的画布应用程序,该身份验证将以长 -活令牌(60 天),然后您可以将其持久化并在该时间段内使用它。

于 2012-05-07T21:59:03.887 回答