1

Java Directory API を使用して、 Google ドキュメントで説明されている方法に従って、アカウント内のすべてのユーザーのリストを返そうとしていますが、常に 403 パーミッション エラーが発生します。

Java SDK を使用すると、コードは次のようになり、実行時に 403 が失敗します。

Directory directory = new Directory.Builder(TRANSPORT, JSON_FACTORY, getCredential()).setApplicationName(PRODUCT_FULL_NAME).build();

Directory.Users.List list = directory.users().list();
list.setCustomer("my_customer");
com.google.api.services.admin.directory.model.Users users = list.execute();

私の App Engine API コンソールでは、Admin SDK を有効にしており、(コンソールおよびプログラムで) 承認に関する次のスコープを要求する権限が設定されています。

https://www.googleapis.com/auth/admin.directory.user https://www.googleapis.com/auth/admin.directory.user.readonly

私はサービス アカウントを使用していませんが、「スーパー管理者」として承認しています。管理コンソールから API アクセスを有効にしました。

Google Works が提供する「試してみる」フォーム機能を使用してリストを取得します。ただし、Java Directory API を使用するのではなく、HTTP get を実行するようにコードを調整しても、403 エラーが発生します。

これを持って家々をぐるぐる回っています。私が間違っているかもしれないことを誰かが知っていますか?任意のポインタは本当に高く評価されます.

4

1 に答える 1

1

ああ、私は資格情報のキャッシュに違反しました!

この新しい機能を提供するためにアプリを拡張し、以前にログインしたユーザーでテストしていました。アプリ エンジンを使用して、アプリ エンジンの資格情報ストアに資格情報を保持していました。メソッド認証では、新たに認証された認証情報ではなく、キャッシュされた古い認証情報が使用されます。

アプリ エンジンの memcache をフラッシュし、資格情報ストアから資格情報を削除すると、問題が解決しました。

于 2013-10-08T10:25:59.367 に答える