python - vk.com获取token总是给access_token has expired

标签 python vk

我正在测试 vk.com api 以便能够执行搜索。 我可以获得 token ,但是当我使用它时,它总是返回错误:“access_token 已过期” 能不能帮我看看是不是代码错了,还是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

https://oauth.vk.com/authorize?client_id=APPLICATION_CLIENT_ID&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=SCOPE&response_type=token&v=5.65

在哪里

  • 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 权限来制作“永恒”的 token ,但它是不安全)

所以我们为 id = 1 的应用程序生成 token 的 URL 可能看起来像

https://oauth.vk.com/authorize?client_id=1&display=page&redirect_uri=https://oauth.vk.com/blank.html&scope=friends,groups&response_type=token&v=5.65

点击此链接后会有如下形式

accessing request from application

我们必须检查它是我们的应用程序并单击允许,之后我们将被重定向并且 token 将在重定向页面 URL 中,我们最终可以从中获取我们的 token :

redirect

关于python - vk.com获取token总是给access_token has expired,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44545606/

相关文章:

python - PyQt : how to use QWebPage with an anonimous proxy

python - 两个 numpy 索引数组相交

css - 请向我解释 vk css 图标技巧

android - Android 版 Vk SDK

oauth-2.0 - spring-social-vkontakte 授权代码问题

python - 我应该为作者预测挖掘哪些算法/概念

python - 如何将其变成 lambda 函数?

c# - 用于 C# 的 vkontakte api

android - VK Android SDK - response.parsedModel 为 null

python - Pandas :根据特定列的值计数选择行