2017-04-19 12 views
2

私はjsonのコードを取得するためにpostman.butを使用して、以下のURLを使用してjsonからコードを取得しようとしています。私は、ブラウザでこのURLを打ったときUBERのauthorize apiからコードを取得する方法

uber login link

また私は、コードを取得することができ、クエリパラメータで私のlocalhostのURLにリダイレクトしています。

ステップ1。クライアントID、クライアントシークレット、スコープ、およびリダイレクトコールバックURIを使用してOAuth2Credentialsオブジェクトを作成して、ユーザーの認証コードを取得します。

SessionConfiguration config = new SessionConfiguration.Builder() 
.setClientId("YOUR_CLIENT_ID") 
.setClientSecret("YOUR_CLIENT_SECRET") 
.setScopes(yourScopes) 
.setRedirectUri(redirectUri) 
.build(); 

OAuth2Credentials credentials = new OAuth2Credentials.Builder() 
.setSessionConfiguration(config) 
.build() 

ステップ2。ユーザーをOAuth2Credentialsオブジェクトから認可URLに移動します。

String authorizationUrl = credentials.getAuthorizationUrl(); 

ステップ3。ユーザーが要求を承認すると、認証コードが取得されます。認証コードとユーザーIDを保管する信任状オブジェクトを作成します。

Credential credential = credentials.authenticate(authorizationCode, userId); 

私は、手順2および手順3

で混乱しています - 私は、ステップ2でauthorizationUrlをどうするかを持っている必要がありますか?。 - 手順3でauthorizationUrlを使用してauthorizationCodeを取得するにはどうすればよいですか?

答えて

2

developer docsに記載されているOAuth2.0プロセスに従ってください。基本的に、OAuth2.0の設定を行います。設定によって特定の認証URL(client_idとスコープが要求されます)が生成されます。このURLはWebビューで開く必要があります。ユーザーはUberアカウントでログインし、スコープへのアクセスを承認または拒否する必要があります。これは、手順2で取得するURLです。

ユーザーが認証Webビューで承認をクリックすると、構成済みのリダイレクトURIがUberサーバーを通じて呼び出されます。このコールバックには、authorizationCodeのURLパラメータがあります。

+0

はい。 Upto authorizationCode私は知っていますが、一度コードを承認すれば、トークンを取得でき、認証コードは10分で失効します。今私のconsufionは、コールバックURLを使用してauthorizationCodeには、その一度の仕事ですか?私は私のサーバーを再起動し、私はトークンを持っていない場合はどうなりますか?新しいauthorizationCodeを取得する必要がありますか? –

+0

認証コードが最終的なトークンではありません。あなたはそれを使ってアクセストークンを取得する必要があります。 DBにアクセストークンを格納する必要があります(ユーザーに関連付けられています)。アクセストークンは、実際のトークンレスポンスの 'expires_in 'に定義されているように、30日間有効です。 [ドキュメントの「アクセストークンの取得」の手順(https://developer.uber.com/docs/riders/guides/authentication/introduction#get-an-access-token)を参照してください。あなたの認証コードでアクセストークンを取得しないと、認証コードは10分後に失効します。ユーザーは基本的にスコープへのアクセスを許可し、そのスコープに対処する必要があります – agraebe

関連する問題