2017-12-12 14 views
0

私はInstagramのOAuth認証サービス(based on this description)を使用するFlaskウェブサイトで作業しています。私はInstagramにアクセスすることができ、認証に必要なコードを取得しますが、最後のステップでは私が提供していると思う「client_id」がないことを示すエラーが表示されます。エラーを返すInstagram OAuth2プロトコルにjsonデータを正しく投稿するには?

from flask import Flask, request, redirect 
import requests 
import json 

client_id = "" 
client_secret = "" 
redirect_uri = "" 
authorization_url = "https://api.instagram.com/oauth/authorize" 

app = Flask(__name__) 
app.debug = True 
app.secret_key = 'development' 

@app.route('/') 
def index(): 
    return redirect(authorization_url + "/?client_id=" + client_id + "&redirect_uri=" + redirect_uri + "&scope=public_content&response_type=code") 

@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', data=json.dumps(payload)) 
    return r.text 

:私は、ペイロード内のclient_idを提供したとして

{"error_type": "OAuthException", "code": 400, "error_message": "You must provide a client_id"} 

私はこの奇妙なを見つけます。 何が問題なのでしょうか?

答えて

0

ペイロードはjsonでなくても簡単な辞書であるようです。 次の形式で動作します。

r = requests.post('https://api.instagram.com/oauth/access_token', data=payload) 
関連する問題