按照 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/

10-13 09:16