我有一个应用程序引擎Web应用程序,该应用程序希望自动将帖子发布到我控制的Facebook应用程序的墙上(即每次在网站上发生特定事件时,我都想更新我的Facebook应用程序的墙上)。

该代码将从服务器上的延迟任务中调用。

我一直找不到任何解决此问题的方法。您的帮助将不胜感激。

我要做的第一件事是使用以下代码获取访问令牌:

https://graph.facebook.com/oauth/access_token?client_id=FACEBOOK_APP_ID&client_secret=FACEBOOK_APP_SECRET&grant_type=client_credentials&scope=manage_pages,offline_access


使用返回的访问令牌,这就是我在服务器上运行的内容:

form_fields = {
    "access_token": FACEBOOK_ACCESS_TOKEN,
    "message": tgText
    };

form_data = urllib.urlencode(form_fields)
result = urlfetch.fetch(url="https://graph.facebook.com/MYAPP_FACEBOOK_ID/feed",
                        payload=form_data,
                        method=urlfetch.POST,
                        validate_certificate=False,
                        headers={'Content-Type': 'application/x-www-form-urlencoded'})


但是调用此操作会导致:

{"error":{"type":"OAuthException","message":"(#200) The user hasn't authorized the application to perform this action"}}

最佳答案

作为管理员,您可以使用OAuth授予对第三方应用程序(例如python应用程序)的访问权限,以发布到应用程序的个人资料页面(http://www.facebook.com/apps/application.php?id=YOUR_APP_ID):

http://developers.facebook.com/docs/authentication/(部分页面登录)

收到访问令牌后,您应该可以按照以下说明将其发布到“应用资料页面”:

http://developers.facebook.com/docs/reference/api/post/(部分发布)

10-04 16:47
查看更多