【发布时间】:2018-06-01 12:30:48
【问题描述】:
我对 python 脚本和任何在线内容都非常陌生,但我想从一个有趣的地方开始,所以我想出了一个目标:编写一个简单的桌面 .py 文件,每次运行时只需简单地发布“ Hello World' 以我的名义在我的 Facebook 墙上。
最后,我只是通过硬编码(据我所知)用户访问令牌并使用该令牌下的 facebook 图来管理
facebookGraph = facebook.GraphAPI(access_token="qwertyuiop")
fb_response = facebookGraph.put_object("me", "feed", message="Hello World")
现在文档说用户令牌的生命周期很短,我不太喜欢手动进入并将其复制到我的程序中的想法(即使它每 2 小时或 2 个月一次)所以我第二次尝试,取而代之的是获取我启用了访问我帐户的每个权限的应用程序令牌
def FetchAppAccessToken(app_id, app_secret):
headers = {'grant_type': 'client_credentials', 'client_id': app_id, 'client_secret': app_secret}
response = requests.post('https://graph.facebook.com/oauth/access_token?', params = headers)
logging.debug(response.text)
return response
#then.. get the right substring within response and use the graph as before
但我总是遇到
facebook.GraphAPIError: An active access token must be used to query information about the current user.
我认为也许使用用户令牌是可行的方法,但经过几个小时的反复试验,包括尝试通过提供电子邮件和密码来获取用户令牌,我读到没有用户根本不可能相互作用。所以回到 App Tokens 和更多的阅读。我遇到了在 Python 中使用 PHP 或使用 OAuth/OAuth2(我没有经验)创建登录流程来检索我可以使用的令牌,但我开始觉得我正在偏离轨道应该是用的。
有没有更简单的方法,例如为文件提供电子邮件和密码,只要它在我的桌面上就可以完成该任务?
另外,我想避免打开任何浏览器并单击模拟来执行此操作(如果可能的话)。
【问题讨论】:
标签: python-3.x scripting facebook-wall facebook-graph-api-v2.0