1

我正在尝试在我的应用程序页面墙上发布帖子,就好像它来自应用程序页面(而不是其他用户)经过研究后,我似乎没有找到真正有效的解决方案!

我试图按照这里的文档:

然后我通过以下方式获取我的“access_token_page”:

https://graph.facebook.com/oauth/access_token?client_id=APP_ID&client_secret=CLIENT_SECRET&grant_type=client_credentials

然后使用 facebook python api 我尝试:

graph1 = facebook.GraphAPI(access_token_page)
graph1.put_wall_post(fbmessage, attachment, profile_id=APP_PAGE_ID)

但是,这只会返回以下 facebook 错误:

*** GraphAPIError: (#200) The user hasn't authorized the application to perform this action

关于我所缺少的任何想法?请记住,我希望让应用页面自己发布帖子,而不是从另一个用户名生成帖子。

谢谢!

4

2 回答 2

2

您所做的是使用App Access Token发布到页面。

您应该使用页面访问令牌来代表页面管理员发布。用户访问令牌也有效,但它是https://developers.facebook.com/bugs/647340981958249报告的一个错误,因此在撰写本文时不建议使用用户访问令牌。

https://developers.facebook.com/docs/reference/api/page/#page_access_tokens 所述

页面访问令牌

要以 Page 而非当前用户的身份执行以下操作,您必须使用 Page 的 access token,而不是通常用于读取 Graph API 对象的 user access token。可以通过向具有 manage_pages 权限的 /USER_ID/accounts 发出 HTTP GET 来检索此访问令牌。

有关不同类型访问令牌的更多信息,请访问https://developers.facebook.com/docs/facebook-login/access-tokens/

于 2013-05-23T18:12:48.377 回答
1

试试 Django Facebook: https ://github.com/tschellenbach/Django-facebook 这将解决您的许多 API 问题。

您需要页面访问令牌,请参见此处: https ://developers.facebook.com/docs/facebook-login/access-tokens/ 请求 manage_pages 作为额外权限

获得该设置后,只需执行以下操作:

user_graph = OpenFacebook(user_access_token)
response = user_graph.get('me/accounts')
# turn the response to a dict, and be sure to get the page you want
page_access_token = response['data'][0]['access_token']
graph = OpenFacebook(page_access_token)
graph.set('me/feed', message='helloworld')

您可以在此处找到更多文档:

http://django-facebook.readthedocs.org/en/latest/open_facebook/api.html

于 2013-05-27T12:57:16.570 回答