0
我希望能夠從Google日曆API檢索用戶日曆和事件。基本上,我設法從Android的AccountManager獲得一個Auth-Token並執行請求,但我得到了Google數據(日曆)API授權授權 - 前端
"error": {
"errors": [
{
"domain": "global",
"reason": "authError",
"message": "Invalid Credentials",
"locationType": "header",
"location": "Authorization"
}
],
"code": 401,
"message": "Invalid Credentials"
}
}
作爲響應。生成它的代碼是(部分)。第一次運行這個時,Android要求我授權訪問我的日曆數據,以便接受我的應用程序。
final Account account = manager.getAccountsByType("com.google")[0];
AccountManagerFuture<Bundle> accountManagerFuture =
manager.getAuthToken(account, "cl", true,
new AccountManagerCallback<Bundle>() {
public void run(AccountManagerFuture<Bundle> future) {
try {
Bundle bundle = future.getResult();
if (bundle.containsKey(AccountManager.KEY_AUTHTOKEN)) {
final String authToken = bundle.getString(AccountManager.KEY_AUTHTOKEN);
final Uri usersCalendars = Uri.parse(
"https://www.googleapis.com/calendar/v3/users/me/calendarList")
.buildUpon()
.appendQueryParameter("key","--myapikey--")
.build();
HttpClient client = new DefaultHttpClient();
HttpGet request = new HttpGet(usersCalendars.toString());
request.setHeader("Authorization","GoogleLoginAuth=" + authToken);
request.setHeader("GData-Version","3.0");
HttpResponse response = client.execute(request);
// outputting response, logging etc
正如你所看到的,我沒有使用google-api-java-client,因爲我無法得到一個飛行任一。基本上,示例代碼調用了不再存在的方法/將其移至Android的AccountManager,而android-calendar-example產生了401 eror,而不是列出我的日曆。
如果你們有任何提示,文檔等,我會很高興。
編輯我只是想通過
manager.invalidateAuthToken("com.google",authToken);
無效令牌然後檢索通過一個新的,具有相同的結果。