按照 https://github.com/reddit/reddit/wiki/OAuth2 中描述的 OAuth2 登录流程,我到了对 https://www.reddit.com/api/v1/access_token 进行 POST 返回如下内容的地步:
{'token_type': 'bearer', 'expires_in': 3600, 'scope': 'identity', 'access_token': '*****'}
然后我做
GET https://oauth.reddit.com/api/v1/me
有了这个标题:
Authorization: bearer *****
响应是 HTTP 403 Unauthorized。但为什么?很明显,访问 token 具有“身份”范围。还记录了/api/v1/me 调用仅需要此范围。 (见 https://www.reddit.com/dev/api/oauth#GET_api_v1_me )
那么为什么我会收到 http 403 呢?
最佳答案
我遇到了与您描述的完全相同的问题。就我而言,我通过在请求 header 中添加一个虚假的用户代理字符串来解决 403
。
在我的例子中,使用 C# 的 HttpClient
,这会像这样进行:
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("User-Agent", "MockClient/0.1 by Me");
...
}
关于oauth2 - Reddit API 返回 HTTP 403,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42009024/