谷歌oauth-来自管理SDK的不一致用户列表



我一直在用目录API列出用户,列出的用户数量存在一些不一致。

我能够使用检索用户的信息

admin_service.users().get(userKey = email).execute()

但是当从列表API 中检索到该用户不在场时

credentials = SignedJwtAssertionCredentials(SERVICE_ACCOUNT_EMAIL,PRIVATE_KEY,SCOPE,prn = "admin@domain.com")
http = httplib2.Http()
http = credentials.authorize(http)
admin_service = build("admin", "directory_v1",http = http)
admin_service.users()
user_list = user_service.list(domain="company.com")
listed_users = user_list.execute()
final_user_list = listed_users["users"]
while "nextPageToken" in listed_users.keys():
    user_list = user_service.list(pageToken = listed_users["nextPageToken"])
    listed_users = user_list.execute()
    final_user_list += listed_users["users"]
return final_user_list

例如,如果List API返回2000个用户john.doe@domain.com列表中缺少。

查询的详细信息时john.doe@domain.com从API我们得到了成功的结果。

尝试这个

credentials = SignedJwtAssertionCredentials(SERVICE_ACCOUNT_EMAIL,PRIVATE_KEY,SCOPE,prn = "admin@domain.com")
http = httplib2.Http()
http = credentials.authorize(http)
service = build("admin", "directory_v1",http = http)
final_user_list = []
page_token = None
while True:
    users = service.users().list(domain="replace_your_domain_name", pageToken=page_token).execute()
    for entry in users.get("users"):
        user_email = entry.get('primaryEmail')
        final_user_list.append(user_email)
    page_token = users.get('nextPageToken', None)
    if not page_token:
        break

最新更新