1

Google App Engine Identity を使用して、Google Apps ユーザーの Google Drive API にアクセスしています。Google Apps の API クライアント アクセスの管理に GAE URL を適切な範囲で挿入しました。

AppIdentityCredential credential = new AppIdentityCredential(Arrays.asList(DriveScopes.DRIVE_FILE));
    HttpTransport httpTransport = new NetHttpTransport();
    JsonFactory jsonFactory = new JacksonFactory();
    Drive service = new Drive.Builder(httpTransport, jsonFactory, credential).build();

次のエラーが表示されます。

com.google.appengine.repackaged.org.apache.http.impl.client.DefaultRequestDirector handleResponse
WARNING: Authentication error: Unable to respond to any of these challenges: {authsub=WWW-Authenticate: AuthSub realm="https://www.google.com/accounts/AuthSubRequest" allowed-scopes="https://www.googleapis.com/auth/drive,https://www.googleapis.com/auth/docs,https://www.googleapis.com/auth/drive.file,https://www.googleapis.com/auth/drive.readonly,https://www.googleapis.com/auth/drive.metadata.readonly"}
An error occurred: com.google.api.client.googleapis.json.GoogleJsonResponseException: 401 OK
{
  "code" : 401,
  "errors" : [ {
    "domain" : "global",
    "location" : "Authorization",
    "locationType" : "header",
    "message" : "Invalid Credentials",
    "reason" : "authError"
  } ],
  "message" : "Invalid Credentials"
}
  • Google Apps の API クライアント アクセスで GAE アプリケーションを有効にする必要はありますか? そうでない場合、GAE アプリに API スコープへのアクセスを許可するにはどうすればよいですか?
  • Local / EclipseでGAE Identityをテストすることは可能ですか?
  • 要約すると、何が間違っているか、または不足していますか?
4

3 に答える 3

1
  1. AppEngine Credentials をローカルでデバッグすることはできません。デバッグする唯一の方法は、異なる資格情報を使用することです (本番用の AppEngine とローカルのキーベースのサービス アカウント)。ローカル環境と本番環境で異なるコードを記述する必要があります。

  2. appengine サービス アカウントをチームに追加する必要があります。プロジェクトにカスタム Google Apps ドメインを使用する場合は、カスタム ドメインにメール グループを作成し、このグループを追加する必要があります。すべてのサービス アカウントをこのグループに追加する必要があります。

于 2012-10-10T19:24:51.457 に答える
0

認証を試みるスコープを追加することを検討してください。コードで同じエラーが発生し、drive.file スコープを追加して解決しました。

于 2012-10-16T16:19:14.583 に答える