为了账号安全,请及时绑定邮箱和手机立即绑定

为什么我的示例 google api 代码上出现 503 服务不可用?

为什么我的示例 google api 代码上出现 503 服务不可用?

慕婉清6462132 2022-06-14 16:37:27
我有一个管理员 Google 帐户,并且有权为我的大学创建自定义域用户 ( example@stu.najah.edu)。我想编写一个 python 脚本来自动化这个任务,所以我使用谷歌的 API。我按照本教程(https://github.com/googleapis/google-api-python-client/blob/master/docs/oauth-server.md)做了一切。但仍然从python得到以下异常:/Users/osamaabuomar/projects/.virtualenvs/gsuite-api-demo/bin/python /Users/osamaabuomar/projects/gsuite-api-demo/quickstart.pyGetting the first 10 users in the domainTraceback (most recent call last):  File "/Users/osamaabuomar/projects/gsuite-api-demo/quickstart.py", line 32, in <module>    main()  File "/Users/osamaabuomar/projects/gsuite-api-demo/quickstart.py", line 19, in main    results = service.users().list(customer='my_customer', maxResults=10, orderBy='email').execute()  File "/Users/osamaabuomar/projects/.virtualenvs/gsuite-api-demo/lib/python3.7/site-packages/googleapiclient/_helpers.py", line 130, in positional_wrapper    return wrapped(*args, **kwargs)  File "/Users/osamaabuomar/projects/.virtualenvs/gsuite-api-demo/lib/python3.7/site-packages/googleapiclient/http.py", line 856, in execute    raise HttpError(resp, content, uri=self.uri)googleapiclient.errors.HttpError: <HttpError 503 when requesting https://www.googleapis.com/admin/directory/v1/users?customer=my_customer&maxResults=10&orderBy=email&alt=json returned "Service unavailable. Please try again">Process finished with exit code 1这是我的python代码from __future__ import print_functionfrom google.oauth2 import service_accountimport googleapiclient.discoverydef main():    SCOPES = ['https://www.googleapis.com/auth/admin.directory.user',              'https://www.googleapis.com/auth/admin.directory.customer']    SERVICE_ACCOUNT_FILE = './quickstart-1570011757324-0609ceb3ce31.json'    credentials = service_account.Credentials.from_service_account_file(        SERVICE_ACCOUNT_FILE, scopes=SCOPES)    service = googleapiclient.discovery.build('admin', 'directory_v1', credentials=credentials)
查看完整描述

1 回答

?
慕侠2389804

TA贡献1719条经验 获得超6个赞

问题是我错过了设置委托,正如DalmTo 所提到的。所以这是我完整的工作代码:


from __future__ import print_function

from google.oauth2 import service_account

import googleapiclient.discovery


SCOPES = ['https://www.googleapis.com/auth/admin.directory.user', ]


SERVICE_ACCOUNT_FILE = './quickstart-1570011757324-2bfbc3d902b9.json'



def main():

    credentials = service_account.Credentials.from_service_account_file(

        SERVICE_ACCOUNT_FILE, scopes=SCOPES)

    delegated_credentials = credentials.with_subject('admin@najah.edu')


    service = googleapiclient.discovery.build('admin', 'directory_v1', credentials=delegated_credentials)


    # Call the Admin SDK Directory API

    print('Getting the first 10 users in the domain')

    results = service.users().list(customer='my_customer', maxResults=10, orderBy='email').execute()

    users = results.get('users', [])


    if not users:

        print('No users in the domain.')

    else:

        print('Users:')

        for user in users:

            print(u'{0} ({1})'.format(user['primaryEmail'],

                                      user['name']['fullName']))



if __name__ == '__main__':

    main()

注意credentials.with_subject('admin@domain.com')部分。


查看完整回答
反对 回复 2022-06-14
  • 1 回答
  • 0 关注
  • 452 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号