Мое приложение получает accessToken
, refreshToken
, expiryTimeInMillis
после выполнения uber webSetup. Они хранятся в файле через StoredCredential
. Когда мне нужно создать сеанс, я создаю Credential
следующим образом, считывая значения, хранящиеся в StoredCredential
.Uber Refresh Authenticator crash
private Credential createCredential(){
Credential.Builder builder = new Credential.Builder(new Credential.AccessMethod() {
@Override
public void intercept(HttpRequest request, String accessToken) throws IOException {
/**
* Do nothing
*/
}
@Override
public String getAccessTokenFromRequest(HttpRequest request) {
/**
* Do nothing
*/
return null;
}
});
builder.setTransport(new MockHttpTransport());
builder.setJsonFactory(new MockJsonFactory());
builder.setClientAuthentication(new BasicAuthentication("user","pass"));
String query = "";
try {
query = URLEncoder.encode("mock", "utf-8");
} catch (UnsupportedEncodingException e) {
Log.v(TAG,"UnsupportedEncodingException ");
}
String url = "http://mockaddress.com/search?q=" + query;
builder.setTokenServerEncodedUrl(url);
return builder.build();
}
public void setCredentialsFromWebSetup(String accessToken, String refreshToken, long expire_at){
credential = createCredential();
credential.setAccessToken(accessToken);
credential.setRefreshToken(refreshToken);
credential.setExpirationTimeMilliseconds(expire_at);
}
Моя проблема:
accessToken
истек, и я не знаю, как обновить его с помощьюrefreshToken
.Я думал Uber SDK ручки обновляя маркер доступа, как я передаю
accessToken
,RefreshToken
,ExpiryTime
, глядя на код убер-Java-SDK.Как я буду уведомлен о новом
accessToken
после его возобновления с использованиемrefreshToken
.
У меня нет имени клиента для Uber. У меня нет приложения Uber на моем устройстве. Я использую SDK uber-rides-java для создания приложения, которое использует API uber для записи/отмены/просмотра информации о поездке.
Я вижу этот сбой и не очень полезную информацию, связанную с моей проблемой.
Е/AndroidRuntime (20417): java.lang.IllegalArgumentException: нет входного сигнала в формате JSON не найдено E/AndroidRuntime (20417): в com.google.api.client.repackaged.com.google.common.base. Preconditions.checkArgument (Preconditions.java:92) E/AndroidRuntime (20417): at com.google.api.client.util.Preconditions.checkArgument (Preconditions.java:49) E/AndroidRuntime (20417): at com. google.api.client.json.JsonParser.startParsing (JsonParser.java:222) E/AndroidRuntime (20417): at com.google.api.client.json.JsonParser.parse (JsonParser.java:379) E/AndroidRuntime (20417): at com.google.api.client.json.JsonParser.parse (JsonParser.java:354) E/AndroidRuntime (2041) 7): at com.google.api.client.json.JsonObjectParser.parseAndClose (JsonObjectParser.java:87) E/AndroidRuntime (20417): at com.google.api.client.json.JsonObjectParser.parseAndClose (JsonObjectParser.java : 81) E/AndroidRuntime (20417): at com.google.api.client.http.HttpResponse.parseAs (HttpResponse.java:459) E/AndroidRuntime (20417): at com.google.api.client.auth .oauth2.TokenRequest.execute (TokenRequest.java:307) E/AndroidRuntime (20417): at com.google.api.client.auth.oauth2.Credential.executeRefreshToken (Credential.java:570) E/AndroidRuntime (20417)): at com.google.api.client.auth.oauth2.Credential.refreshToken (Credential.java:489) E/AndroidRuntime (20417): at com.uber.sdk.rides.auth.CredentialsAuthenticator.refreshAndSign (CredentialsAuthenticator. java: 97) E/AndroidRuntime (2041) 7): at com.uber.sdk.rides.auth.CredentialsAuthenticator.reauth (CredentialsAuthenticator.java:77) E/AndroidRuntime (20417): at com.uber.sdk.rides.auth.CredentialsAuthenticator.refresh (CredentialsAuthenticator.java : 58) E/AndroidRuntime (20417): at com.uber.sdk.rides.client.internal.RefreshAuthenticator.authenticate (RefreshAuthenticator.java:46) E/AndroidRuntime (20417): at okhttp3.internal.http.HttpEngine .Например, вы можете использовать следующие параметры:():()::::::::::::::::::::::::::::::::::::::::java: 198) E/AndroidRuntime (20417): at okhttp3.logging.HttpLoggingInterceptor.intercept (HttpLoggingInterceptor.java:142) E/AndroidRuntime (20417): at okhttp3.RealCall $ ApplicationInterceptorChain.proceed (RealCall.java:187) E/AndroidRuntime (20417): at com.uber.sdk.rides.client.internal.ApiInterceptor.intercept (ApiInterceptor.java:57) E/AndroidRuntime (20417): at okhttp3.RealCall $ ApplicationInterceptorChain.proceed (RealCall. java: 187) E/AndroidRuntime (20417): at okhttp3.RealCall.getResponseWithInterceptorChain (RealCall.java:160) E/AndroidRuntime (20417): at okhttp3.RealCall.access $ 100 (RealCall.java:30) E/AndroidRuntime (20417): at okhttp3.RealCall $ AsyncCall.execute (RealCall.java:127) E/AndroidRuntime (20417): at okhttp3.internal.NamedRunnable.r un (NamedRunnable.java:32) E/AndroidRuntime (20417): at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1112) E/AndroidRuntime (20417): at java.util.concurrent.ThreadPoolExecutor $ Worker.run (ThreadPoolExecutor.java:587) E/AndroidRuntime (20417): at java.lang.Thread.run (Thread.java:818) W/ActivityManager (1063): принудительно завершает работу com.iamplus.uberapp/.MainActivity
Пожалуйста, предоставьте дополнительную информацию над кодом, что вы пытались выполнить и т. Д. –