2016-05-06 10 views
1

Ich versuche, eine Post-Anfrage an Quizlet nach ihrem OAuth-Fluss von diesen Anweisungen https://quizlet.com/api/2.0/docs/authorization-code-flow zu machen. Ich stoße auf ein Problem, wo ich auf Schritt 2 eine Post-Anfrage mit einem Token, das ich von ihrem Server generiert habe, machen muss, aber ich habe keinen Erfolg, das Token an die URL weiterzuleiten. Ich weiß, dass es richtig generiert wurde, aber ich habe Probleme, es zu übergeben und keine 400 Antwort zu bekommen.Python fordert Parameter nicht durch

Direkt, meine Frage ist, gibt es eine andere Möglichkeit, die grant_type und code Parameter, die ich versuche, über die URL in der Post Anfrage übergeben, wie sie über den Header der Post Anfrage übergeben? Ich habe die Dokumentation für requests angesehen, aber ich hatte kein Glück.

@app.route('/') 
@app.route('/index') 
def index(): 
    code = request.args.get('code') 
    state = request.args.get('state') 
    print("code is " + code) 
    r = requests.post("https://api.quizlet.com/oauth/token?grant_type=authorization_code&code=" + code) 

    return render_template('index.html') 

Antwort

1

Sie müssen die erforderlichen Header Authorization, Content-Type angeben.

import requests 
from requests.auth import _basic_auth_str 

client_id = 'YOUR CLIENT ID' 
secret = 'YOUR CLIENT SECRET' 
code = 'CODE FROM STEP 1' 

headers = { 
    'Authorization': _basic_auth_str(client_id, secret), 
    'Content-Type': 'application/x-www-form-urlencoded' 
} 
r = requests.post('https://api.quizlet.com/oauth/token?grant_type=authorization_code&code={0}'.format(
    code), headers=headers) 

print r.status_code 
print r.content 
+0

An welchem ​​Punkt benötigt Schritt 2 meinen geheimen Schlüssel? – Rafa

+0

es gibt immer noch einen 400 Statuscode – Rafa

+0

Ok, ich habe ein kleines Problem im Code behoben. Auch ich habe die 3 Variablen verschoben, die Sie oben aktualisieren müssen. Nachdem ich es ausgeführt hatte, bekam ich 200 und ein Zugriffs-Token. Lass es mich wissen, wenn es für dich funktioniert. – fips

Verwandte Themen