0

Pythonのサービス アカウント経由で AdminSettings API を使用して、ユーザーのドメイン番号 'GetCurrentNumberOfUsers()' を取得しようとしています。委任全体の権限と範囲を有効にしましたが、エラーが発生しました。Calendar API、Directory API、EmailSettings API にはサービス アカウントを使用しましたが、AdminSettings では機能しません。github.com/Khan/gdata-python-client/blob/master/samples/apps/adminsettings_example.pyでサンプル コードを試しましたが、管理者アカウントの正しい資格情報を使用しているときに「承認が必要です」というエラーが発生しました: API クライアント アクセス

from oauth2client.client import SignedJwtAssertionCredentials
import gdata.gauth
import gdata.apps.service
import gdata.apps.adminsettings.service

SERVICE_ACCOUNT_EMAIL = "XXXXXXXXXXXXX-ebirq08jvhldahbb482u8a1otu9n3l8p.apps.googleusercontent.com"
SERVICE_ACCOUNT_PKCS12_FILE_PATH = 'gapi_admin/privatekey.p12'
f = file(SERVICE_ACCOUNT_PKCS12_FILE_PATH, 'rb')
key = f.read()
f.close()
credentials = SignedJwtAssertionCredentials(SERVICE_ACCOUNT_EMAIL, key, scope='https://apps-apis.google.com/a/feeds/domain/', sub='admin@xxxtestmail.edu')
auth2token = gdata.gauth.OAuth2TokenFromCredentials(credentials)
service = gdata.apps.adminsettings.service.AdminSettingsService(source="testApp", domain='xxxtestmail.edu')
service = auth2token.authorize(service)

print service.GetCurrentNumberOfUsers()

#output
#TypeError: new_request() takes exactly 1 non-keyword argument (2 given)

OAuth2 Playground で正常に動作し、Screenshotを表示します。

4

1 に答える 1