我正在尝试制作一个简单的程序,在Python的Fcebook上发布一些东西到我的墙上。我尝试使用pythonforfacebook中的示例:
import facebook
oauth_access_token = "****"
graph = facebook.GraphAPI(oauth_access_token)
me = "****"
profile = graph.get_object(me)
graph.put_object(me, "feed", message="I am writing on my wall!")
我尝试去开发中心制作应用程序。对于“选择你的应用程序如何与Facebook集成”,我选择了“Facebook登录网站”(我实际上没有网站,我只有一个程序应该发布到我的Facebook墙上,但这是最接近的选项匹配我想做的事...)。
然而,当我运行它时,它说:
$ python a.py
Traceback (most recent call last):
File "a.py", line 7, in <module>
graph.put_object(me, "feed", message="I am writing on my wall!")
File "/usr/lib64/python2.7/site-packages/facebook.py", line 140, in put_object
post_args=data)
File "/usr/lib64/python2.7/site-packages/facebook.py", line 298, in request
raise GraphAPIError(response)
facebook.GraphAPIError: (#200) The user hasn't authorized the application to perform this action
如何以用户身份登录并授权我的应用?我甚至采取了正确的方法吗?我实际上没有一个网站,我只有一个程序,对于网站字段我输入“http://google.com”并且它有效。
答案 0 :(得分:3)
我通过获取具有在我的墙上发布的权限的新令牌(特别是“publish_actions”权限)使其成功。我通过使用Graph API Explorer,在下拉菜单中选择我的应用程序,按“获取访问令牌”并选中“publish_actions”来完成此操作。唯一的问题是令牌在一小时后过期。
答案 1 :(得分:2)
您必须授权用户publish_action
/ publish_stream
权限才能在您的留言板上发布。
答案 2 :(得分:0)
对于那些在4月24日之后偶然发现此帖子的人,Facebook已停止支持此类API调用。
自2018年4月24日起,publish_actions权限已被删除。有关更多详细信息,请参见Breaking Changes Changelog。为了为您的应用程序用户提供一种与Facebook共享内容的方式,我们建议您改用Sharing products。