2016-11-18 2 views
-1

Я пытаюсь интегрировать Uber Login и Ride Request с использованием Uber API. Я успешно завершил входную часть и попытался интегрировать часть запроса на поездку. Ниже мой фрагмент кода для этого -Uber Ride Request с использованием API

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(); 

Всякий раз, когда я запускаю это и попытаться проверить журнал, он выходит из строя в .build в OAuth в линии().

Здесь ошибка я получаю -

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)  

Но я уже установить идентификатор клиента и секрет.

Абсолютно смущенный тем, что происходит. Пожалуйста помоги.

ответ

0

Одной из проблем является перенаправление 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 /» пока, будет ли это работать? Я зарегистрировал тот же самый redirect uri в учетной записи разработчика uber –

Смежные вопросы