我正在尝试使用 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()
感谢您的帮助!
最佳答案
让我解释一下。实际上,Vkontakte 将返回 email
以及访问 token (如果提供)。
您不需要使用oauth_session.get
,因为它确实会发出新请求,但当您获得访问 token 时,它已经完成了。尝试使用 oauth_session.email
获取对象属性。
附注您可以使用 get_raw_access_token
查找电子邮件。
关于python - 使用 Rauth 为 vk.com 实现 OAuth2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45763016/