vk.com 使用 Rauth 实现 OAuth2

Implementing OAuth2 with Rauth for vk.com

我正在尝试使用 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()

感谢您的帮助!

让我解释一下。实际上,email 与访问令牌一起由 Vkontakte 返回(如果提供的话)。

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

获取对象 属性

P.S。您可以使用 get_raw_access_token.

查找电子邮件