uber webSetupを実行した後、私のアプリはaccessToken
,refreshToken
、expiryTimeInMillis
を受け取っています。これらはStoredCredential
でファイルに保存されています。セッションを作成する必要があるときはいつでも、StoredCredential
に格納された値を読み取ることによって、Credential
を次のように作成します。Uber Refresh Authenticatorクラッシュ
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
を使用して、それを更新する方法がわかりません。私はユーバーSDKは、私はユーバー-のjava-sdkのコードを見て、
accessToken
、RefreshToken
、ExpiryTime
を渡していますようaccessTokenを更新扱うと思いました。refreshToken
を使用して更新後に新しいaccessToken
の通知を受ける方法を教えてください。
私はUberのクライアントログインを持っていません。私は自分のデバイスにUberアプリを持っていません。私はuber-rides-java SDKを使用して、uber APIを使用して予約/キャンセル/乗車の詳細を表示するアプリを構築しています。
私はこのクラッシュを見ていて、私の問題に関連する多くの助けがありません。
E/AndroidRuntime(20417):java.lang.IllegalArgumentExceptionが:NO JSON入力 E/AndroidRuntime(20417)が見つかりません:com.google.api.client.repackaged.com.google.common.baseで。前提条件。チェックアークマーク(Preconditions.java:92) E/AndroidRuntime(20417):com.google.api.client.util.Preconditions.checkArgument(Preconditions.java:49) E/AndroidRuntime(20417):com。 google.api.client.json.JsonParser.startParsing(JsonParser.java:222) E/AndroidRuntime(20417):com.google.api.client.json.JsonParser.parse(JsonParser.java:379) E/AndroidRuntime(20417):com.google.api.client.json.JsonParser.parse(JsonParser.java:354) E/AndroidRuntime(2041) 7):com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java:87) E/AndroidRuntime(20417):com.google.api.client.json.JsonObjectParser.parseAndClose(JsonObjectParser.java :81) E/AndroidRuntime(20417):com.google.api.client.http.HttpResponse.parseAs(HttpResponse.java:459) E/AndroidRuntime(20417):com.google.api.client.auth .oauth2.TokenRequest.execute(TokenRequest.java:307) E/AndroidRuntime(20417):com.google.api.client.auth.oauth2.Credential.executeRefreshToken(Credential.java:570) E/AndroidRuntime(20417) ):com.google.api.client.auth.oauth2.Credential.refreshToken(Credential.java:489) E/AndroidRuntime(20417):com.uber.sdk.rides.auth.CredentialsAuthenticator.refreshAndSign(CredentialsAuthenticator。 java:97) E/AndroidRuntime(2041 (CredentialsAuthenticator.java:77) E/AndroidRuntime :58) E/AndroidRuntime(20417):com.uber.sdk.rides.client.internal.RefreshAuthenticator.authenticate(RefreshAuthenticator.java:46) E/AndroidRuntime(20417):okhttp3.internal.http.HttpEngine .httpEngine.java:2793)。(Androidの場合は、次のように入力してください。okrttp3.RgingCall $ ApplicationInterceptorChain.proceed(RealCall.java:187) E/AndroidRuntime(20417):okhttp3.logging.HttpLoggingInterceptor.intercept(HttpLoggingInterceptor.java:142) E/AndroidRuntime(20417) E/AndroidRuntime(20417):com.uber.sdk.rides.client.internal.ApiInterceptor.intercept(ApiInterceptor.java:57) E/AndroidRuntime(20417):okhttp3.RealCall $ ApplicationInterceptorChain.proceed(RealCall。 okrttp3.RealCall.access $ 100(RealCall.java:30) E/AndroidRuntime(20417):okhttp3.RealCall.access $ 100(RealCall.java:30)E/AndroidRuntime(20417):okhttp3.RealCall.getResponseWithInterceptorChain(RealCall.java:160) E/AndroidRuntime AndroidRuntime(20417):okhttp3.RealCall $ AsyncCall.execute(RealCall.java:127) E/AndroidRuntime(20417):okhttp3.internal.NamedRunnable.rで(/)://AndroidRuntime(20417):java.util.concurrent.ThreadPoolExecutor $でのun(NamedRunnable.java:32) E/AndroidRuntime(20417):java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112) Worker.run(ThreadPoolExecutor.java:587) E/AndroidRuntime(20417):java.lang.Thread.run(Thread.java:818) W/ActivityManager(1063):強制終了アクティビティcom.iamplus.uberapp/.MainActivity
あなたのコードの上に何かを実行しようとしていたより多くの情報を提供してください。 –