【发布时间】: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