2

我正在尝试使用 Rauth for vk.com 提供程序实现 Oauth2 授权,但我遇到以下问题:

据我所知,没有办法通过 vk.com api 调用获取用户的电子邮件地址,但它以 json 格式发送带有 access_token 的电子邮件地址。

我的问题是:我不知道如何从 Rauth 的“会话”对象中获取它,有一个 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()

谢谢您的帮助!

4

1 回答 1

2

让我解释。实际上,email如果提供了访问令牌,则由 Vkontakte 连同访问令牌一起返回。

您不需要使用oauth_session.get,因为它确实发出了新请求,但是当您获得访问令牌时,它已经完成了。尝试使用oauth_session.email.

PS你可以找到电子邮件使用get_raw_access_token

于 2017-08-20T09:20:13.780 回答