嗯,我需要授權谷歌日曆的一個用戶訪問一個空,首款谷歌標識當我使用的Android getAuthToken返回令牌
blockingGetAuthToken
,並獲得一個令牌正常工作,我通常登錄此令牌。 因此,當我試圖使用其他帳戶時,我得到了一個空令牌。 我搜索了很多,結果發現,使用getAuthToken
是首選,因爲它使用從活動上下文調用它..然後我轉換的全過程,用它
private static final String AUTH_TOKEN_TYPE = "oauth2:https://www.googleapis.com/auth/calendar";
public static String authorize(AndroidtestActivity parent, Account account) {
AccountManager accountManager = AccountManager.get(parent);
Bundle options= new Bundle();
Log.d("MyAPP", "Get Authorization");
try {
AccountManagerFuture<Bundle> acc=accountManager.getAuthToken (account, AUTH_TOKEN_TYPE, options, true, null, null);
Bundle authTokenBundle = acc.getResult();
String authToken = authTokenBundle.get(AccountManager.KEY_AUTHTOKEN).toString();
Log.d("MyAPP","Token= "+authToken);
return authToken;
} catch (Exception ex) {
Logger.getLogger(GoogleAuthorize.class.getName()).log(Level.SEVERE,
null, ex);
}
return null;
}
}
,但仍沒有賬戶能得到有效的標記,他們都得到一個空一個
然後我看到這個答案https://stackoverflow.com/a/2021337/1280902,隨後用invalidateAuthToken
private static final String AUTH_TOKEN_TYPE = "oauth2:https://www.googleapis.com/auth/calendar";
public static String authorize(AndroidtestActivity parent, Account account) {
AccountManager accountManager = AccountManager.get(parent);
Bundle options= new Bundle();
Log.d("MyAPP", "Get Authorization");
try {
AccountManagerFuture<Bundle> acc=accountManager.getAuthToken (account, AUTH_TOKEN_TYPE, options, true, null, null);
Bundle authTokenBundle = acc.getResult();
String authToken = authTokenBundle.get(AccountManager.KEY_AUTHTOKEN).toString();
accountManager.invalidateAuthToken("com.google",authToken);
acc=accountManager.getAuthToken (account, AUTH_TOKEN_TYPE, options, true, null, null);
authTokenBundle = acc.getResult();
authToken = authTokenBundle.get(AccountManager.KEY_AUTHTOKEN).toString();
Log.d("MyAPP","Token= "+authToken);
return authToken;
} catch (Exception ex) {
Logger.getLogger(GoogleAuthorize.class.getName()).log(Level.SEVERE,
null, ex);
}
return null;
}
}
,但我對我使用每個帳戶同樣的問題,即使是使用在年初blockingGetAuthToken
所以我失去的東西的工作嗎?
只是一個小提示它工作正常:您可以使用字符串「管理您的日曆」爲AUTH_TOKEN_TYPE。這將出現在授予訪問權限的用戶確認屏幕上,而不是該隱蔽的URL。我花了一段時間才弄明白這一點。文檔真的很少。 – tiguchi 2012-07-07 16:44:49
哦謝謝..我不得不搜索那些字符串而不是URL,但谷歌沒有更新他們的文檔(像往常一樣) 謝謝@NobuGames,感謝你的幫助 – Tar3k 2012-07-07 16:46:26