Sziasztok,
Egy Flask alapú weboldalon dolgozom, ami majd a jövőben az Instagram API-n keresztül fog lekérni adatokat, ezért szükséges hogy azonosítsam a felhasználókat OAuth2 segítségével. Elvileg nem bonyolult a folyamat: https://www.instagram.com/developer/authentication/ de a harmadik lépésnél nem találom a Python megoldást.
Az ide vonatkozó kódrészletem így néz ki:
@app.route('/callback')
def callback():
code = request.args.get('code')
payload = {"client_id": client_id,
"client_secret": client_secret,
"grant_type": "authorization_code",
"redirect_uri": redirect_uri,
"code": code}
r = requests.post('https://api.instagram.com/oauth/access_token', json=payload)
return r.text
A válasz pedig ez a hibaüzenet:
{"error_type": "OAuthException", "code": 400, "error_message": "You must provide a client_id"}
A
client_id
változó fentebb definiálva van, a
code
változó is működik. Valószínűleg a
requests.post()
függvényemmel van valami gond, de nem igazán találom, hogy mi lehet az. Az is kizárt, hogy a
client_id
tartalma hibásan van megadva, mert az OAuth egy korábbi fázisában ugyanez a változó még működik.
Az instagram leírásában egy
curl -F
requestet ad meg példaként.
Azt gondolom, hogy az én
requests.post()
függvényem ezzel azonos eredményt ad, de könnyen lehet, hogy ebben tévedek.
Előre is köszönöm, ha valakinek van ötlete.
- 759 megtekintés
Hozzászólások
Azt még hozzáteszem, hogy kb ezt kellene elküldenem csak Pythonban ahhoz hogy jó választ kapjak:
curl -F 'client_id=CLIENT_ID' \
-F 'client_secret=CLIENT_SECRET' \
-F 'grant_type=authorization_code' \
-F 'redirect_uri=AUTHORIZATION_REDIRECT_URI' \
-F 'code=CODE' \
https://api.instagram.com/oauth/access_token
- A hozzászóláshoz be kell jelentkezni
Nem JSON-t hanem Dictionary-t kell küldeni és akkor működik.
json = payload helyett data = payload
- A hozzászóláshoz be kell jelentkezni