如何使用Requests从Python连接Facebook Graph API而不需要用户访问令牌?

10 投票
2 回答
12928 浏览
提问于 2025-04-17 14:13

我想找一个最简单的方法,使用我最喜欢的Requests库来使用Facebook的Graph API。问题是,我找到的所有例子都是关于获取用户访问令牌的,涉及重定向和用户交互。

我只需要应用访问令牌。因为我不处理任何非公开的数据,所以不需要用户交互。而且我的最终应用是一个命令行脚本,所以也不需要重定向。

我在这里找到了一些类似的内容,但看起来一点也不优雅。此外,我更希望能找到使用RequestsRequests-OAuth2的例子。或者说有没有相关的库呢?我找到过Requests-FacebookFacepy(都是基于Requests的),但同样,所有的例子都涉及重定向等等。Facepy根本不处理授权,它只是接受你的令牌,获取令牌的方式就得靠你自己了。

能不能请大家提供一个简短、合理、有效的例子,教我如何获取应用访问令牌呢?

2 个回答

1

如果你只需要一个快速的小请求,可以手动从这里复制访问令牌,然后粘贴到你的代码里:https://developers.facebook.com/tools/explorer

注意:和Richard Barnett的回答不同,每次使用时你都需要在图形API探索器里手动重新生成这个代码。

10

根据这个链接:https://developers.facebook.com/docs/technical-guides/opengraph/publishing-with-app-token/

import requests
r = requests.get('https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id=123&client_secret=XXX')
access_token = r.text.split('=')[1]
print access_token

(使用正确的 client_idclient_secret 的值)会给我一个看起来像是访问令牌的东西。

撰写回答