Googleの新しい管理SDKを使用するのが難しいです。特に、Oauth2を使用するDirectory API 私はほとんどそこにいると思うが、私はDirectory API(私はGoogle Education Editionドメインを使用している)を使ってユーザーの詳細を取得しようとしている。Oauth2をサービスアカウント(教育用版)として使用しているGoogle Admin API - 403エラー
基本的に私がしようとしているのは、ADによって管理されている登録ステータスに基づいてユーザーをプロビジョニングまたはデプロビジョニングするPythonスクリプトを書くことです。私はOauth1を使ってこれを行うスクリプトを持っていますが、それを更新してOauth2を使用したいのです。
私が見つけたいくつかの例に基づくコードスニペットです。
f = file('test_key.p12', 'rb')
key = f.read()
f.close()
credentials = SignedJwtAssertionCredentials(
'[email protected]',
key,
scope= 'https://www.googleapis.com/auth/admin.directory.user')
http = httplib2.Http()
http = credentials.authorize(http)
service = build(serviceName='admin', version='directory_v1', http=http)
lists = service.users().get(userKey='[email protected]').execute(http=http)
pprint.pprint(lists)
このコードは正しく接続されているようですが、クエリを実行しようとすると403エラーが発生します。
ERROR:https://www.googleapis.com/admin/directory/v1/users/[email protected]?alt=json返さ "このリソース/ APIにアクセスする権限がありません">
私の最初の考えは、管理者コンソール(Google API's console)でこのAPIを有効にしていないためですが、私は持っています。 (実際には、Admin APIをオンにして、それが動作するAdmin SDKの一部であることを確認するディレクトリAPIがないため、Directory APIではなくAdmin SDKをオンにしました)。
私は行方不明かどこかで愚かな間違いを犯しましたか?
これを把握しましたか? Directory API(a.k.a Admin SDK API)が、具体的には、サービスアカウントとOAuth 2.0で使用できるかどうかは疑問です。 (私は他のAPIができることは知っています。)OAuth 1.0ではできることが分かりましたが、まだ試していません。 –
@EricWalker - はい、下記のコメントを参照してください。 – Bruce