我正嘗試使用Java Google日曆api連接到日曆。 Java應用程序使用服務帳戶。服務帳戶上的Java Google日曆api「access_denied」
我有下面的代碼:
java.io.File licenseFile = new java.io.File("39790cb51b361f51cab6940d165c6cda4dc60177-privatekey.p12");
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(HTTP_TRANSPORT)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId("[email protected]")
.setServiceAccountUser(EMAIL_ADRESS)
.setServiceAccountScopes(CalendarScopes.CALENDAR)
.setServiceAccountPrivateKeyFromP12File(licenseFile)
.build();
client = new com.google.api.services.calendar.Calendar.Builder(
HTTP_TRANSPORT, JSON_FACTORY, credential)
.setApplicationName("Google Calendar Sync").build();
Calendar calendar = client.calendars().get(EMAIL_ADRESS).execute();
在最後一行我得到一個IOException與消息:
ex = (com.google.api.client.auth.oauth2.TokenResponseException) com.google.api.client.auth.oauth2.TokenResponseException: 400 Bad Request { "error" : "access_denied" }
我DUBBLE檢查值的GoogleCredential對象,它們是正確的。 我還添加了https://www.google.com/calendar/feeds/,http://www.google.com/calendar/feeds/在我的域名控制檯應用程序ID爲客戶授權第三方應用訪問
我忘記了一步?
嗨,你有沒有得到它的工作?我使用Gmail範圍嘗試,但得到了同樣的錯誤.. – zhywu
我的答案更新;) –
謝謝,服務帳戶似乎並不適用於Gmail工作 – zhywu