【问题标题】:python: GraphAPIError: Invalid OAuth access tokenpython: GraphAPIError: 无效的 OAuth 访问令牌
【发布时间】:2013-06-27 04:33:16
【问题描述】:

我正在使用 Flask 框架在 python 中制作一个 Web 应用程序,以使用 SDK supplied in their site 从 Facebook 请求访问令牌。

访问令牌被返回并在 GraphAPI 对象中正确设置。但是,它返回以下错误:

GraphAPIError:OAuth 访问令牌无效。

如果我使用相同的访问令牌从本地 python 环境中查询图形 API,它就可以正常工作。问题似乎是在网络服务器中执行时。

参见下面的代码 sn-p:

@app.route('/facebook')
def fb():
  if 'token' in session:
    graph = facebook.GraphAPI(session['token'])
    return graph.get_object("me")


@app.route('/facebook/login')
def fblogin():
  code = request.args.get('code','')
  if(code == ""):
    args = dict(client_id=app_id, redirect_uri=request.base_url)
    #args = dict(client_id=app_id, redirect_uri=request.url_root + 'facebook')
    return redirect(
    "https://graph.facebook.com/oauth/authorize?" +
    urllib.urlencode(args))
  else:
    token = facebook.get_access_token_from_code(code, request.base_url, app_id, app_secret)
    session['token'] = [token.itervalues().next()]
    return redirect (request.url_root + 'facebook')

以前有没有人遇到过这种情况和/或可以提供一些见解?

【问题讨论】:

  • 听起来可能是个愚蠢的问题,但您确定访问令牌相同吗?如果您在本地开发并正常投入生产,您应该使用不同的应用程序。
  • @phwd:是的。它们是同一个应用程序,使用相同的键。我设法检索了访问令牌并将其插入到本地代码中。

标签: python facebook facebook-graph-api flask dreamhost


【解决方案1】:

好的,我已经设法在此代码中纠正了 2 个问题并使其正常工作:

1) 以下代码行列出了 GraphAPI 对象无法识别有效访问令牌的原因:

session['token'] = [token.itervalues().next()]

2) 以下代码行给出了一个错误,指出“dict”不可调用。这是因为返回的变量是一个字典,为了作为视图返回,必须先将其转换为字符串:

return graph.get_object("me")

【讨论】:

    猜你喜欢
    • 2013-05-18
    • 1970-01-01
    • 2018-06-17
    • 2021-01-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-23
    • 1970-01-01
    相关资源
    最近更新 更多