如何以编程方式在Facebook上发布到我自己的墙上?

meg*_*ord 6 python facebook facebook-graph-api

我正在尝试制作一个简单的程序,在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!")
Run Code Online (Sandbox Code Playgroud)

我试着去开发中心做一个应用程序.对于"选择你的应用程序如何与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
Run Code Online (Sandbox Code Playgroud)

如何以用户身份登录并授权我的应用程序?我甚至采取了正确的方法吗?我实际上没有一个网站,我只有一个程序,对于网站字段,我确实输入了" http://google.com "并且它有效.

meg*_*ord 3

我通过获取一个具有在我的墙上发布的权限的新令牌(特别是“publish_actions”权限)来实现它。我通过使用Graph API Explorer来完成此操作,在下拉菜单中选择我的应用程序,按“获取访问令牌”并检查“publish_actions”。唯一的问题是令牌在一小时后过期。