我正在使用Facebook的非官方python sdk。这适用于很多图形api调用,但我最近的项目需要使用更多的FQL。某些表(例如通知)需要用户访问令牌而不是应用程序访问令牌。
使用时
graph.facebook.com/oauth/access_token?client_id=YOUR_APP_ID&client_secret=YOUR_APP_SECRET&grant_type=client_credentials
似乎我只得到一个App令牌。因此,当调用通知表时,我将收到“102:请求此资源需要用户访问令牌”
此项目根本不使用浏览器,主要用于验证通知以及从其他应用程序生成的帖子。
在这种情况下接收用户令牌的最佳方式是什么?
由于 Ñ
答案 0 :(得分:13)
如果没有使用facebook身份验证流程登录用户与您的应用程序的直接交互,您将无法获得用户访问令牌。 在没有用户的情况下可以获得的唯一令牌是应用程序令牌,您已经覆盖了它。
您可以手动创建用户令牌,我认为最简单的方法是使用Graph Explorer tool。 只需选择右上角的应用程序,然后单击“获取访问令牌”按钮,然后您可以检查所需的权限,然后生成的令牌将出现在文本框中,复制并使用它
问题在于访问令牌是一个短暂的(几个小时),如果你需要更长的时间我建议你创建一个只会实现Server-Side authentication的画布应用程序使用长期令牌(60天),然后你可以坚持使用它并在那个时候使用它。