2

Googleドメイン内の従業員のカレンダーイベントを保存するJavaアプリケーションを作成する必要があります。http://code.google.com/p/google-api-java-client/wiki/APIs#Calendar_APIで見つけたサンプルに基づいてアプリケーションを作成しました

今、私はそれをグーグルドメインからのアカウントで動作させたいと思っていました、そして突然私は立ち往生しています。client_secrets.jsonファイルを新しいものに変更しました。インストールされたアプリケーションのcode.google.com/apis/consoleで生成され、無効なクライアントエラーが発生します。

ex =(com.google.api.client.auth.oauth2.TokenResponseException)com.google.api.client.auth.oauth2.TokenResponseException:400 Bad Request {"error": "unauthorized_client"}

これには他の手順を実行する必要がありますか?また、単一のアカウントではなく、ドメイン内のすべてのアカウントでデフォルトで機能する必要があります。多分他のコンソール?他の図書館ではないことを願っています。

4

2 に答える 2

2

ドメイン内のすべてのアカウントにアクセスするには、サービスアカウントを使用する必要があります。

https://developers.google.com/accounts/docs/OAuth2ServiceAccount

このリンクはDriveAPIに固有のものですが、CalendarAPIv3に簡単に適応できるコードサンプルがいくつか提供されているはずです。

https://developers.google.com/drive/delegation

于 2012-12-14T12:54:47.643 に答える
2

今後の参考のために、Googleカレンダーの承認に次のコードを使用しました

   java.io.File licenseFile = new java.io.File("39790cb51b361f51cab6940d165c6cda4dc60177-privatekey.p12");

   GoogleCredential credential = new GoogleCredential.Builder()

  .setTransport(HTTP_TRANSPORT)
  .setJsonFactory(JSON_FACTORY)
  .setServiceAccountId("xxxxx@developer.gserviceaccount.com")   

  .setServiceAccountUser("USER_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();

また、これらのリンクは、サービスアカウントの設定に大いに役立ちました。

OAuth Google APIforJavaがユーザーになりすますことができない

Google Apps AdminはDriveSDKを使用してユーザーファイルを管理できますか?

于 2012-12-14T14:30:27.643 に答える