Google カレンダー API v3 とサービス アカウント モードを使用してアクセスできるアプリケーションを開発しています。私のアプリケーションでは問題なく新しいカレンダーを作成できているようですが、Google カレンダーの標準 Web アプリで結果を確認しようとすると、何も表示されません。CalendarList を取得すると適切なカレンダー リストが返されるため、これは奇妙です。なぜこれが起こるのか誰か知っていますか?サービス アカウントで作成したカレンダーに制限はありますか?
ご協力ありがとうございました。アルベルト
更新 1:
ここに私のコードのスニペットがあります
HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();
GoogleCredential credential = new GoogleCredential.Builder()
.setTransport(httpTransport)
.setJsonFactory(JSON_FACTORY)
.setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
.setServiceAccountScopes(Collections.singleton(CalendarScopes.CALENDAR))
.setServiceAccountPrivateKeyFromP12File(new File(KEY_P12))
// .setServiceAccountUser("user@example.com")
.build();
Calendar service = new com.google.api.services.calendar.Calendar.Builder(httpTransport, JSON_FACTORY, credential)
.setApplicationName(APPLICATION_NAME).build();
com.google.api.services.calendar.model.Calendar content = new com.google.api.services.calendar.model.Calendar();
content.setSummary("A calendar");
service.calendars().insert(content).execute();
更新 2:
資格情報にサービス アカウント ユーザーを追加することを提案する人がいます (その後.setServiceAccountUser("user@example.com")
、上記のコードのコメントを解除しますが、機能しません。この場合、カレンダーを作成することもできず、電話service.calendars().insert(content).execute();
して受信したときに受信することもできません
400 Bad Request
{
"error" : "access_denied"
}