我尝试使用Rauth为vk.com提供商实施Oauth2授权,我遇到以下问题:
据我所知,无法通过vk.com api调用获取用户的电子邮件地址,但是它以json格式发送带有access_token的电子邮件地址。
我的问题是:我不知道如何从Rauth" session"对象,有一个access_token字段,但无法获取电子邮件地址。
以下是代码:
def callback(self):
def decode_json(payload):
return json.loads(payload.decode('utf-8'))
if 'code' not in request.args:
return None, None, None
oauth_session = self.service.get_auth_session(
data={'code': request.args['code'],
'grant_type': 'authorization_code',
'redirect_uri': self.get_callback_url()},
decoder=decode_json
)
me = oauth_session.get("some call to vk.api").json()
感谢您的帮助!
答案 0 :(得分:2)
让我解释一下。实际上,Vkontakte会返回email
以及访问令牌,以防它被提供。
您不需要使用oauth_session.get
,因为它确实会发出新请求,但是当您获得访问令牌时,它已经完成了。尝试使用oauth_session.email
获取对象属性。
P.S。您可以使用get_raw_access_token
找到电子邮件。