2016-10-17 6 views
1

現在、私はAlexのスキルとUberの残りのAPIを統合しています。Uber API権限のないアクセスの問題

Uber APIを使用して乗車をリクエストすることはできません。応答として

を「401無許可」:私は上記のAPIを呼び出すと、私は取得しています

https://sandbox-api.uber.com/v1/requests 

:私はAPIのサンドボックスバージョンを使用しています。

開発用にJava 8を使用しています。

私はUber開発者ダッシュボードからのアクセストークンを使用しています。 [設定]タブの[パーソナルアクセストークンでテストする]セクションには、[新規アクセストークンを生成]ボタンがあります。このボタンをクリックすると、アクセストークンが生成されます。

上記で生成されたアクセストークンをAuthorizationヘッダーに設定しています。ここでは、コードスニペットは次のとおりです。

HttpPost httpPost = new HttpPost("https://sandbox-api.uber.com/v1/requests"); 
httpPost.setHeader("Authorization", "Bearer " + access_token); 

私はユーバー開発者ダッシュボードに「AUTHORIZATIONS」タブの下には何も設定する必要がありますか?現在、私は変更を加えず、デフォルトをすべて残しています。

ヘッダーに設定する前にアクセストークンをエンコードする必要がありますか?

お知らせください。

ありがとうございました。

答えて

1

残念ながら、あなたは(そのようPOST v1/requestsのために必要なrequestsなど)、「アクセス制限」スコープのためのダッシュボードで生成されたトークンを使用することはできません、あなたはサンドボックス内でテストするためのアクセストークンを生成するために、OAuthの手順を実行する必要があります。

あなたがテストするためのトークンを生成する簡単な方法のためにこれを試してみてください、サンドボックス内でPOST v1/requestsエンドポイントをテストするためにダッシュボードのトークンを使用することはできませんので:

  1. 置き換える(お使いのブラウザでこのURLに移動しますコールバックURLを使用してアプリケーションのクライアントIDとYOUR_CALLBACK_URLとYOUR_CLIENT_ID - ダッシュボードの[認証]タブで、コールバックURLを設定 - localhostすることができる):あなたのユーバーdeveloとで

    https://login.uber.com/oauth/v2/authorize?response_type=code&client_id= YOUR_CLIENT_ID&scope=request&redirect_uri=YOUR_CALLBACK_URL 
    
  2. ログインアカウントごとと

  3. あなたは、codeクエリ文字列を使用してredirect_uriにリダイレクトcodeの値をコピーしてアクセストークンを取得するには、このcurlコマンドに貼り付けされます「許可」をクリックしてください(同様に必要な他のすべての値を置き換えます):

    curl -F 'client_secret=YOUR_CLIENT_SECRET' \ 
        -F 'client_id=YOUR_CLIENT_ID' \ 
        -F 'grant_type=authorization_code' \ 
        -F 'redirect_uri=YOUR_REDIRECT_URI' \ 
        -F 'code=CODE_FROM_REDIRECT' \ 
        https://login.uber.com/oauth/v2/token 
    

それが成功したなら、あなたは応答でaccess_tokenを取得する必要があります。the Authorization guide

詳しい情報はまた、ヘッダにそれを設定する前に、アクセストークンをエンコードする必要はありません。

私はそれが助けてくれることを願っています!

+0

ステップ1では、手動でURLをコピーしてブラウザに入れて、コードとコードを毎回10分で失効させる必要があります。どのようにAPIコールを介してコードを取得する?事前に感謝 –

+0

またはコピーURLは一度の仕事ですか? –

+0

OAuth 2.0認可グラントフローの性質は、初めてアプリケーションで認証するようにユーザーに指示する必要があります(手順1)。次に、 'access_token'の' code 'を交換すると(ステップ3)、この 'access_token'をどこかに保存し、それをAPIへのさらなる要求に使う必要があります。アクセストークンにはペイロードに 'refresh_token'が含まれているため、アクセストークンが30日後に期限切れになると更新することができます。 –

関連する問題