按照https://github.com/reddit/reddit/wiki/OAuth2 中描述的 OAuth2 登录流程,我到了 POST 到https://www.reddit.com/api/v1/access_token返回类似内容的地步这个:
{'token_type': 'bearer', 'expires_in': 3600, 'scope': 'identity', 'access_token': '*****'}
Run Code Online (Sandbox Code Playgroud)
然后我做
GET https://oauth.reddit.com/api/v1/me
Run Code Online (Sandbox Code Playgroud)
有了这个标题:
Authorization: bearer *****
Run Code Online (Sandbox Code Playgroud)
响应是 HTTP 403 Unauthorized。但为什么?很明显,访问令牌具有“身份”范围。还记录了 /api/v1/me 调用仅需要此范围。(见https://www.reddit.com/dev/api/oauth#GET_api_v1_me)
那么为什么我会收到 http 403 呢?
我遇到了与您描述的完全相同的问题。就我而言,我通过在请求标头中403添加人造用户代理字符串来解决该问题。
就我而言,使用HttpClientC# 的过程如下:
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("User-Agent", "MockClient/0.1 by Me");
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2436 次 |
| 最近记录: |