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
.
查找电子邮件
我正在尝试使用 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
.