在 StackExchange API 中,某些方法需要身份验证,例如获取我的帐户 - /me
(文档 - https://api.stackexchange.com/docs/me)。
每个这样的方法都需要access_token
:
>>> import requests
>>> response = requests.get('https://api.stackexchange.com/2.3/me?site=stackoverflow')
>>> response.text
{
"error_id": 401,
"error_message": "This method requires an access_token",
"error_name": "access_token_required"
}
- 写道“此方法需要 access_token ” - 需要访问令牌。
唯一的问题是:如何获得它?
由于我花了很长时间才弄清楚这一点,我会在这里给出说明,也许会对某人有所帮助。
创建一个应用程序:
笔记:
stackexchange.com
;从应用程序列表转到新创建的应用程序页面,然后复制客户端 ID字段(您的应用程序 ID):
点击链接
https://stackexchange.com/oauth/dialog?client_id=<ID ПРИЛОЖЕНИЯ>&redirect_uri=https://stackexchange.com/oauth/login_success/
,粘贴复制的应用程序 ID。单击“批准”
现在地址看起来像
https://stackexchange.com/oauth/login_success/#access_token=<ACCESS TOKEN>&expires=86400
从地址复制访问令牌,现在它就是你的了!
现在如何使用它:
从您的应用程序页面复制密钥:
在 API 中,您需要传递密钥和访问令牌,例如:
PS:使用该指令获取的access token没有写权限,即不能用于发送POST请求(例如写评论)。要获得执行此操作的许可,您需要
app
、 或标签script
。重要提示:这个问题应该是你的,但你可以简单地创建类似https://stackapps.com/q/10459/116701的内容。&scope=write_access
.