0

我在 facebook 中创建应用程序并在我的个人资料中创建页面。在“选择您的应用程序如何与 Facebook 集成”部分中,我没有选择任何选项,因为我只想将文本发布到 Facebook 页面(也许这是问题?)。我有这个代码:

FACEBOOK_APP_ID = 'myappid'
FACEBOOK_APP_SECRET = 'myappsecret'
FACEBOOK_PROFILE_ID = 'myprofileid'

oauth_args = dict(client_id     = FACEBOOK_APP_ID,
                  client_secret = FACEBOOK_APP_SECRET,
                  scope         = 'publish_stream',
                  grant_type    = 'client_credentials'
                  )

oauth_response = urllib.urlopen('https://graph.facebook.com/oauth/access_token?' + urllib.urlencode(oauth_args)).read()

oauth_response 看起来不错

但是当我运行时:

resp = urllib.urlopen('https://graph.facebook.com/me/accounts?'+oauth_response).read()

我得到错误:

{"error":{"message":"An active access token must be used to query information about the current user.","type":"OAuthException","code":2500}}

我究竟做错了什么?例如,当我单击我的网站(Django)上的按钮时,我想在页面墙上发布一些文本。

更新:

好的,我在 json 中获取页面数据。我解析它并得到page_access_token,但是当我调用它时:

attach = {
  "name": 'Hello world',
  "link": 'http://linktosite',
  "caption": 'test post',
  "description": 'some test'
}

facebook_graph = facebook.GraphAPI(page_access_token)
try:
    response = facebook_graph.put_wall_post('', attachment=attach)
except facebook.GraphAPIError as e:
    print e

我收到错误:“目标用户尚未授权此操作”

4

2 回答 2

2

这个问题基本上是在问同样的问题,答案似乎就是你要找的:(OAuthException - #2500)必须使用主动访问令牌来查询当前用户的信息

于 2012-11-14T19:27:08.027 回答
0

如果 page_access_token 是正确的,我猜您(页面管理员)尚未授予您的 facebook 应用程序向 facebook 页面发布消息的权限。

检查客户端的 facebook 登录功能,是否要求足够的权限,范围选项应为 'mange_pages publish_stream photo_upload...' 取决于您的要求,而不仅仅是 'mange_pages'

于 2014-01-25T22:40:07.183 回答