Ich habe REST API Zugriff auf einen bestimmten Dienst als Teil einer Beta erworben. Mir wurde gesagt, dass die Autorisierung durch OAuth2 erfolgt.Verwenden von OAuth2 mit Benutzername und Kennwort
bekam ich folgendes:
- ID
- SECRET
- SITE
Ich habe auch ein Code-Beispiel in Ruby:
client = OAuth2::Client.new(key, secret, :site => site)
token = client.password.get_token('[email protected]', 'your_password')
access_token = OAuth2::AccessToken.new(client, token)
JSON.parse access_token.get("/v1/users/me").body rescue {}
Ich versuche, das gleiche Snippet in Python mit demzu implementierenPaket, ohne Erfolg:
consumer = oauth2.Consumer(key=self._client_id,
secret=self._client_secret)
request_token_url = "api.theservice.com/"
token = oauth2.Token(key=self._email, secret=self._password)
client = oauth2.Client(consumer, token)
resp, content = client.request(request_token_url, "GET")
pprint.pprint(resp)
pprint.pprint(content)
resp, content = client.request(request_token_url + 'v1/users/me', "GET")
pprint.pprint(resp)
pprint.pprint(content)
Die zweite Antwort enthält folgende Komponenten:
'www-authenticate': 'Bearer realm="Doorkeeper", error="invalid_token", '
'error_description="The access token is invalid"',
Ich habe versucht, auch ohne Token eine oauth2.Client
Objekt erstellt und überprüft die erste Antwort für eine access_token
, aber nichts von Die Sorte kam durch.
Was ist der richtige Weg, um hier zu authentifizieren?
Ist dieser Service eine dreibeinige OAuth wie Twitter beschrieben ist [hier] (https://github.com/joestump/python-oauth2/wiki/Zwitschern-Dreibein-OAuth)? – skyline75489
Nicht zu meinem Wissen. –