我提出以下要求:
检索访问令牌。此网址指向vk.com上的登录页面(如果尚未登录),然后提示用户授权应用程序,然后重定向到https://oauth.vk.com/blank.html#access_token= {token}& expires_in = 0& user_id = {id}。因此,要实际检索访问令牌,需要从地址栏手动复制它。此过程在官方API中指定。有办法解决这个问题吗?如何仅使用python代码获取令牌?
以下是生成网址的过程:
import requests
def authorize_app(client_id, redirect_uri = None):
'''
The function generates an url, which redirects to login page (optional, if not logged in) and app authorization.
'''
if redirect_uri == None:
redirect_uri = 'https://oauth.vk.com/blank.html' # default callback url
oauth = requests.get('https://oauth.vk.com/authorize', params = {'client_id' : str(client_id),
'redirect_uri' : redirect_uri,
'display' : 'page',
'scope' : ['friends,offline'], # offline option makes the token permanent
'response_type' : 'token',
'v' : 5.63})
return oauth.url
答案 0 :(得分:0)
您可以使用授权代码流,其中您收到Auth_code,然后使用此代码来检索access_token。
获取auth_code和access_tokens只是对OAuth服务器的POST请求。
在你的代码中,response_type应该是获取auth代码的代码,然后使用这段代码来检索acccess_token
请参阅此https://vk.com/dev/auth_sites。通常,此流程在任何OAuth提供商上都是相同的。