私はpyhtonで私たちの支持者を助けるための小さなスクリプトを書いています。私は新しいユーザーのためにいくつかのラベルを作成したいと思いますが、私は認証に失敗しています。ここでGMail APIでサービス利用者のラベルを管理する
は、コードのいくつかの重要な部品です:
delegated_credentials = self.credentials.create_delegated(self.p.mail)
http = delegated_credentials.authorize(httplib2.Http())
self.service_gmail = discovery.build('gmail', 'v1', http=http)
for i in groupstoadd:
print "| |-> {}".format(i)
self.service_gmail.users().labels().create(userId=self.p.mail, body={"name": i}).execute()
のでself.credentials管理者アカウントで、コード内で同じように働いているので、私は前にこのユーザーを作成することができます。しかし、私は...ラベルを(コールしようとすると)私はこの取得作成します。
Error: (<class 'oauth2client.client.HttpAccessTokenRefreshError'>, HttpAccessTokenRefreshError(u'unauthorized_client: Unauthorized client or scope in request.',), <traceback object at 0x7f205667a9e0>)
面白いことに、私は、デリゲートに私の管理者の電子メールを使用して作成した場合、それが動作すること。新しいユーザーにGMAIL APIを何らかの形で有効にしなければならないのではないかと思います。 (確かに、ドメイン全体で有効なAPI)
そしてself.credentialsパーツ:
self.credentials = ServiceAccountCredentials.from_json_keyfile_name(CreateGA.CLIENT_SECRET_FILE, scopes=CreateGA.SCOPES)
とスコープは、以下のとおりです。
SCOPES = [
'https://www.googleapis.com/auth/admin.directory.user',
'https://www.googleapis.com/auth/admin.directory.group',
'https://www.googleapis.com/auth/admin.directory.user.security',
'https://www.googleapis.com/auth/gmail.labels',
]
事前にどうもありがとう! P.
新しいユーザーを作成するための管理スコープがあります。サービスユーザーが管理ユーザーを引き継いでユーザーを作成できるので、DWDが機能すると思います。私はCPanler JWTの事をチェックしなければなりません。ヒントがありがとう、私はそれが動作するように管理すれば戻ってきた! :) –
ユーザーが作成された後にラベルをつぶす前に60秒待っていれば、問題は違った –
(ごめんなさい)私のコードは動作します.... wuuu huuu :)タイミングの問題のように見えますエンティティとしてのユーザーは私が彼をグループに割り当てることができるように作成されています。受信ボックスの作成にはもう少し時間がかかります...少なくとも、それは今働いているので、助けてくれてありがとう! –