Python 谷歌Appengine上的Facebook OAuth出现问题
我使用“服务器端”流获得用户使用Python在Google Appengine上访问某些信息的权限 我能够在用户点击“允许”按钮后从Facebook获取服务器生成的代码 但是,当我获取访问令牌时,我遇到以下错误: 回溯(最近一次呼叫最后一次):Python 谷歌Appengine上的Facebook OAuth出现问题,python,google-app-engine,facebook,oauth,Python,Google App Engine,Facebook,Oauth,我使用“服务器端”流获得用户使用Python在Google Appengine上访问某些信息的权限 我能够在用户点击“允许”按钮后从Facebook获取服务器生成的代码 但是,当我获取访问令牌时,我遇到以下错误: 回溯(最近一次呼叫最后一次): 文件 “/base/python\u runtime/python\u lib/versions/1/google/appengine/ext/webapp/init.py”, 第515行,在呼叫中 handler.get(*groups)文件“/bas
文件 “/base/python\u runtime/python\u lib/versions/1/google/appengine/ext/webapp/init.py”, 第515行,在呼叫中 handler.get(*groups)文件“/base/data/home/apps/finisherph/1.3485023734491720746/controllers.py”, 第21行,进站 data=urllib2.urlopen(访问令牌url)
文件 “/base/python\u runtime/python\u dist/lib/python2.5/urllib2.py”, 第124行,在urlopen中 返回_opener.open(url,数据)文件 “/base/python\u runtime/python\u dist/lib/python2.5/urllib2.py”, 第387行,处于打开状态 响应=meth(请求,响应)文件 “/base/python\u runtime/python\u dist/lib/python2.5/urllib2.py”, 第498行,在http_响应中 “http”、请求、响应、代码、消息、hdrs)文件 “/base/python\u runtime/python\u dist/lib/python2.5/urllib2.py”, 第425行,错误 返回self.\u调用链(*args)文件 “/base/python\u runtime/python\u dist/lib/python2.5/urllib2.py”, 第360行,输入呼叫链 result=func(*args)文件“/base/python\u runtime/python\u dist/lib/python2.5/urllib2.py”, 第506行,在http\u错误\u默认值中 引发HTTPError(请求获取完整url(),代码, msg,hdrs,fp)HTTPError:HTTP错误 400:请求错误 这是我的控制器中的代码,用户点击“允许”按钮后,facebook会做出响应。这仍然是一个黑客,所以代码有点脏。仍在努力让它发挥作用
class Register(webapp.RequestHandler):
def get(self):
code=self.request.get('code')
logging.debug("code: "+code)
accesst_url=["https://graph.facebook.com/oauth/access_token?"]
accesst_url.append("client_id=CLIENT_ID&")
import urllib
accesst_url.append(urllib.urlencode
({'redirect_uri':'http://my.website.com/register/facebook/'}))
accesst_url.append('&')
accesst_url.append("client_secret=CLIENT_SECRET&")
accesst_url.append("".join(["code=",str(code)]))
logging.debug(accesst_url)
access_token_url="".join(accesst_url)
logging.debug(access_token_url)
import urllib2
data = urllib2.urlopen(access_token_url)
...
...
错误发生在以下位置:
data = urllib2.urlopen(access_token_url)
当我从日志中复制并粘贴access\u token\u url时,出现以下错误:
{“错误”:{
“类型”:“OAutheException”,
“消息”:“验证验证代码时出错。”}
我错过了什么 看起来您正试图以url的形式访问access_令牌,这不太正确 下面是一个例子,说明了如何通过FB通过GAE进行OAuth身份验证
- 你去看电影了吗?使用您的客户端\u id和重定向\u uri
- 授权后,它会给出一个代码,您可以使用
和code
从中获取client\u secret
access\u令牌
- 然后你使用这个访问令牌作为Facebook用户进行操作