vk.com 获取令牌总是给 access_token 已过期
vk.com getting token always gives access_token has expired
我正在测试 vk.com api 是否能够执行搜索。
我可以获得令牌,但是当我使用它时,它总是 returns 错误:"access_token has expired"
能不能帮我看看是不是代码错了,还是vk的配置?
非常感谢
import vk
import requests
url = 'https://oauth.vk.com/access_token?client_id=myClient&client_secret=mySecret&v=5.65&grant_type=client_credentials'
request = requests.get(url).json()
access_token = request["access_token"]
session = vk.Session(access_token)
api = vk.API(session)
search = api.search.getHints(q='python')
错误:
File "C:\Users\gabri\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk\api.py", line 173, in __call__
return self._api._session.make_request(self)
File "C:\Users\gabri\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk\api.py", line 102, in make_request
raise error
vk.exceptions.VkAPIError: 28. Application authorization failed: access_token has expired.. request_params = {'oauth': '1', 'method': 'search.getHints', 'q': 'python'}
我们可以在URL
之后手动获取token
哪里
APPLICATION_CLIENT_ID
是您的应用程序 ID 之一,可以找到托管应用程序的完整列表 here
SCOPE
是逗号分隔的列表permissions
如果我们查看有关 search.getHints
method 的文档,我们会发现
This method can be called with a user token received in Standalone-app via Implicit Flow. Access rights required: friends and groups.
所以我们的SCOPE
可能像friends,groups
(我们也可以添加offline
权限来制作"eternal"令牌,但它不安全)
所以我们的 URL 为 id = 1
的应用程序生成令牌可能看起来像
按照这个link之后会有像
这样的形式
我们必须检查它是否是我们的应用程序并单击 Allow
,之后我们将被重定向并且令牌将在重定向页面 URL 中,我们最终可以从中获取我们的令牌:
我正在测试 vk.com api 是否能够执行搜索。 我可以获得令牌,但是当我使用它时,它总是 returns 错误:"access_token has expired" 能不能帮我看看是不是代码错了,还是vk的配置?
非常感谢
import vk
import requests
url = 'https://oauth.vk.com/access_token?client_id=myClient&client_secret=mySecret&v=5.65&grant_type=client_credentials'
request = requests.get(url).json()
access_token = request["access_token"]
session = vk.Session(access_token)
api = vk.API(session)
search = api.search.getHints(q='python')
错误:
File "C:\Users\gabri\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk\api.py", line 173, in __call__
return self._api._session.make_request(self)
File "C:\Users\gabri\AppData\Local\Programs\Python\Python36-32\lib\site-packages\vk\api.py", line 102, in make_request
raise error
vk.exceptions.VkAPIError: 28. Application authorization failed: access_token has expired.. request_params = {'oauth': '1', 'method': 'search.getHints', 'q': 'python'}
我们可以在URL
之后手动获取token哪里
APPLICATION_CLIENT_ID
是您的应用程序 ID 之一,可以找到托管应用程序的完整列表 hereSCOPE
是逗号分隔的列表permissions
如果我们查看有关 search.getHints
method 的文档,我们会发现
This method can be called with a user token received in Standalone-app via Implicit Flow. Access rights required: friends and groups.
所以我们的SCOPE
可能像friends,groups
(我们也可以添加offline
权限来制作"eternal"令牌,但它不安全)
所以我们的 URL 为 id = 1
的应用程序生成令牌可能看起来像
按照这个link之后会有像
这样的形式我们必须检查它是否是我们的应用程序并单击 Allow
,之后我们将被重定向并且令牌将在重定向页面 URL 中,我们最终可以从中获取我们的令牌: