使用Python自动发布到Facebook页面
我想写一个脚本,让我可以在我的 Facebook 粉丝页面上发帖(我还是管理员)。
根据我看到的,大多数关于图形 API 的例子都是在讲怎么用 Python 创建 Facebook 应用,并让它们和 Python 进行沟通,这跟我想做的事情有点不一样。
而且,图形 API 需要一个 oauth 令牌,文档上说这个令牌是通过以下链接获得的:
https://www.facebook.com/dialog/oauth? client_id=YOUR_APP_ID&redirect_uri=YOUR_URL
我觉得这意味着:
a) 我必须为此创建一个 Facebook 应用,但我本来以为这不是必要的(毕竟这只是需要我个人的标准凭证,不会被其他人使用),不过没关系。我已经为这个任务创建了一个应用。
b) 我需要一个 URL,但我没有,因为这只是一个脚本。
有没有人能给我一些建议,告诉我应该去哪里找相关的信息?
1 个回答
首先,你需要从Facebook获取你的Facebook_App_Id和Facebook_App_Secret,这些信息是在你注册应用时获得的。
接下来,你需要包含一些必要的链接。
redirect_client_url = 'http://your-redirect-url'
access_token_url = 'https://graph.facebook.com/oauth/access_token?client_id='+consumer_key+'&redirect_uri='+red irect_client_url+'&client_secret='+consumer_secret+'&code='
scope = 'publish_stream,offline_access,user_birthday,email'
authorize_url = 'https://graph.facebook.com/oauth/authorize?client_id='+consumer_key+'&redirect_uri='+redirect_client_url+'&scope='+scope+'&display=touch'
user_info_url = 'https://graph.facebook.com/me?access_token='
你的消费者密钥和消费者秘密分别就是Facebook的应用ID和应用密钥。
基本上,你需要按照Oauth2.0的指导来获取access_token,并把access_token和粉丝页面的ID存储在你的数据库里。可以参考这个链接https://github.com/simplegeo/python-oauth2,它提供了获取oauth令牌的好例子。然后,当你想要发布内容时,可以使用类似下面的方式来使用access token。
post_data = {'access_token':access_token, 'message':'hey this is a test!'}
request_path = str(facebook_id)+'/feed'
post_data = urllib.urlencode(post_data)
response = urllib2.urlopen('https://graph.facebook.com/%s' % request_path, post_data)
这样应该可以在用户的墙上发布内容。不过,我相信在Facebook粉丝页面上发布内容也应该是类似的操作。