1

現在、uber で開発者アカウントをセットアップしており、PC とhttp://localhost:7000/submitでローカルにすべて正常に実行されていました。

ログインして API を操作できます。これは、エンドポイントをテストするのに最適です。ただし、私の最終目標は、モバイル アプリでエンドポイントを使用することです。そこで、リダイレクト URL に移動して、https://my_new_url:7000/submitに切り替えました。

サーバーにFlaskを使用しており、次の方法でSSLを使用しています:

if __name__ == '__main__':
    application.run(host='0.0.0.0',port=7000,ssl_context='adhoc') 

ただし、ベース URL に移動すると、次のエラーが表示されます。

エラー

ベース リダイレクト URI が要求されたリダイレクトと一致しません

ベース URL のコードは次のようになります。

def get_redirect_uri(request):
    """Return OAuth redirect URI."""
    parsed_url = urlparse(request.url)
    if parsed_url.hostname == 'localhost':
        return 'http://{hostname}:{port}/submit'.format(
            hostname=parsed_url.hostname, port=parsed_url.port
        )
    return 'https://{hostname}/submit'.format(hostname=parsed_url.hostname)

@application.route('/', methods=['GET'])
def signup():
    params = {
        'response_type': 'code',
        'redirect_uri': get_redirect_uri(request),
        'scopes': ','.join(config.get('scopes')),
    }
    url = generate_oauth_service().get_authorize_url(**params)
    return redirect(url)

リダイレクト URL を変更する前に、アプリケーションをホワイトリストに登録する必要がありますか? それとも、何かを誤って構成していますか?

4

1 に答える 1

0

/v1/oauth2/authorizeエンドポイントから受け取ったエラー応答に記載されているように、問題は、送信する URI のベースが、Uber 開発者ダッシュボードでのアプリケーションの登録中に使用されるリダイレクト URI と一致する必要があることです。

この回答も参照してください: https://stackoverflow.com/a/35638160/313113

于 2016-02-25T21:11:14.783 に答える