2017-02-02 3 views
2

Nach dem OAuth2 Login Fluss bei https://github.com/reddit/reddit/wiki/OAuth2 beschrieben ich zu dem Punkt, wo POST-ing zu https://www.reddit.com/api/v1/access_token kehrt so etwas wie dieses:Reddit API gibt HTTP 403

{'token_type': 'bearer', 'expires_in': 3600, 'scope': 'identity', 'access_token': '*****'} 

Dann mache ich

GET https://oauth.reddit.com/api/v1/me 

Mit diese Überschrift:

Authorization: bearer ***** 

Die Antwort ist HTTP 403 nicht autorisiert. Aber warum? Es ist klar, dass das Zugriffstoken einen "Identitätsbereich" hat. Es ist auch dokumentiert, dass der Aufruf/api/v1/me nur diesen Bereich benötigt. (Siehe https://www.reddit.com/dev/api/oauth#GET_api_v1_me)

Also warum bekomme ich http 403?

+0

Das Format des Headers wichtig 'Authorization ist: Inhaber ' – castis

+0

Okay, sorry. Eigentlich habe ich es mit einem Diktat in Python eingestellt. Es enthält den Doppelpunkt. Ich werde das Queston reparieren. BTW die Dokumente spezifizieren es mit allen kleinen Buchstaben ("Träger" anstelle von "Träger"), sehen am Ende von https://github.com/reddit/reddit/wiki/OAuth2#retrieving-the-access-token – nagylzs

+0

Hmm jetzt fing es an, 403 verboten zurückzukehren. Vielleicht hat es das schon früher zurückgebracht? Ich bin mir nicht sicher. – nagylzs

Antwort

0

Ich hatte das gleiche Problem wie beschrieben. In meinem Fall löste ich die 403 durch Hinzufügen einer faux User-Agent-Zeichenfolge in den Anfrage-Headern.

In meinem Fall HttpClient von C#, geht dies wie folgt:

using (var client = new HttpClient()) 
{ 
    client.DefaultRequestHeaders.Add("User-Agent", "MockClient/0.1 by Me"); 
    ... 
}