2016-11-18 14 views
-1

Uber APIを使用してUber LoginとRide Requestを統合しようとしています。私は正常にログイン部分を完了し、ライドリクエストの部分を統合しようとしています。私はこれを実行し、ログをチェックしてみてくださいするたびに、それはOAuthのの.build()ラインでクラッシュし、APIを使用したUber Rideリクエスト

SessionConfiguration config = new SessionConfiguration.Builder() 
       // mandatory 
       .setClientId("abc") 
       // required for enhanced button features 
       .setServerToken("xyz") 
       // required for implicit grant authentication 
       .setRedirectUri("https://login.uber.com/oauth/authorize") 
       // required scope for Ride Request Widget features 
       .setScopes(Arrays.asList(Scope.RIDE_WIDGETS, Scope.PROFILE, Scope.REQUEST)) 
       // optional: set Sandbox as operating environment 
       .setEnvironment(SessionConfiguration.Environment.SANDBOX) 
       .build(); 

     UberSdk.initialize(config); 

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

     try { 
      String authorizationUrl = credentials.getAuthorizationUrl(); 
     } catch (UnsupportedEncodingException e) { 
      e.printStackTrace(); 
     } 

     Credential credential = credentials.authenticate(authorizationCode, userId); 
     CredentialsSession session = new CredentialsSession(config, credential); 
     RidesService service = UberRidesApi.with(session).createService(); 

- 以下は、そのための私のコードスニペットです。

java.lang.IllegalStateException: Client ID and secret must be set. 

Caused by: java.lang.IllegalStateException: Client ID and secret must be set. 
                        at com.uber.sdk.rides.client.utils.Preconditions.checkState(Preconditions.java:66) 
                        at com.uber.sdk.rides.auth.OAuth2Credentials$Builder.validate(OAuth2Credentials.java:170) 
                        at com.uber.sdk.rides.auth.OAuth2Credentials$Builder.build(OAuth2Credentials.java:181) 
                        at com.rahul.uberapi.android.demo.DemoActivity.onCreate(MainActivity.java:119) 
                        at android.app.Activity.performCreate(Activity.java:5990) 
                        at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) 
                        at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311) 
                        at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2420)  
                        at android.app.ActivityThread.access$900(ActivityThread.java:154)  
                        at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1321)  
                        at android.os.Handler.dispatchMessage(Handler.java:102)  
                        at android.os.Looper.loop(Looper.java:135)  
                        at android.app.ActivityThread.main(ActivityThread.java:5292)  
                        at java.lang.reflect.Method.invoke(Native Method)  
                        at java.lang.reflect.Method.invoke(Method.java:372)  
                        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:904)  
                        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:699)  

しかし、私はすでにクライアントIDとシークレットを設定している - ここで

は、私が取得していますエラーです。

何が起こっているかとはまったく混同されています。助けてください。

答えて

0

問題の1つは、使用しているリダイレクトURIです。これは開発者のダッシュボードに設定する必要があり、アプリケーションを正常に認証した後にユーザーをリダイレクトするURLを表します。下の例を参照してください。

SessionConfiguration config = new SessionConfiguration.Builder() 
.setClientId("<CLIENT_ID>") 
.setClientSecret("<CLIENT_SECRET>") 
.setEnvironment(Environment.SANDBOX) 
.setScopes(Arrays.asList(Scope.PROFILE, Scope.REQUEST)) 
.setRedirectUri("<REDIRECT_URI>") 
.build(); 

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

String authorizationUrl = credentials.getAuthorizationUrl(); 

は、実施例に関連するJava APIのチュートリアルを参照してください:https://developer.uber.com/docs/riders/ride-requests/tutorials/api/java

+0

リダイレクトURIがどうあるべきか?私は "http:// localhost:8000 /"を使っていますが、これは動作しますか? uberデベロッパーアカウントに同じリダイレクトURIを登録しました –

関連する問題