列出设备用户

本页面介绍如何列出设备用户。

列出特定设备用户

以下示例展示了如何列出组织中的所有设备用户。

REST

如需列出特定设备用户,请使用 customer(组织)的名称调用 devices.deviceUsers.list()

Python HTTP

以下示例展示了如何使用 Python HTTP 库列出特定设备用户:

"""Sample script to demonstrate the use of the List method in the Devices API."""
import json
import pprint

from six.moves import urllib

import google.auth.transport.requests
from google.oauth2 import service_account

SCOPES = ['https://www.googleapis.com/auth/cloud-identity.devices']
BASE_URL = 'https://cloudidentity.googleapis.com/v1/'

# Change this to the location of the service account key
SA_FILE = ''

# Enter the administrator to call as here.
ADMIN_EMAIL = ''

if not SA_FILE:
  print('Please specify the location of the service account key file')
if not ADMIN_EMAIL:
  print('Please specify the email of the administrator to call as')

if not SA_FILE or not ADMIN_EMAIL:
  exit(-1)

def create_delegated_credentials(user_email):
  credentials = service_account.Credentials.from_service_account_file(
      SA_FILE,
      scopes=['https://www.googleapis.com/auth/cloud-identity.devices'])

  delegated_credentials = credentials.with_subject(user_email)

  return delegated_credentials

######################################################################
# AUTHENTICATE the service account and retrieve an oauth2 access token

request = google.auth.transport.requests.Request()
dc = create_delegated_credentials(ADMIN_EMAIL)
dc.refresh(request)
print('Access token: ' + dc.token + '\n')

###############################
# LIST deviceUsers with filter.

# Change this filter according to the options here:
# https://support.google.com/a/answer/7549103
FILTER = urllib.parse.quote_plus('status:approved os:IOS')
list_url = BASE_URL + 'devices/-/deviceUsers?filter=' + FILTER
auth_header = {'Authorization': 'Bearer ' + dc.token}
content = urllib.request.urlopen(
    urllib.request.Request(list_url, headers=auth_header)).read()
response = json.loads(content)
pp = pprint.PrettyPrinter(indent=4)

if 'deviceUsers' in response:
  print('Listed: ' + str(len(response['deviceUsers'])) + ' deviceUsers\n')

  for element in response['deviceUsers']:
    pp.pprint(element)
  print('Next page token: ' + response['nextPageToken'])
else:
  print('Empty response')

请注意,FILTER 设置为过滤设备状态为“已批准”(status:approved) 且操作系统为“IOS”(os:IOS) 的设备用户。

获取特定设备用户

以下示例展示了如何检索特定设备用户。

REST

要获取特定设备用户,请使用设备的 namecustomer(组织)调用 devices.deviceUsers.get()

Python HTTP

以下示例展示了如何使用 Python HTTP 库检索特定客户:

"""Sample script to demonstrate the use of the get method in the Devices API."""
import json
import pprint

from six.moves import urllib

import google.auth.transport.requests
from google.oauth2 import service_account

SCOPES = ['https://www.googleapis.com/auth/cloud-identity.devices']
BASE_URL = 'https://cloudidentity.googleapis.com/v1/'

# Change this to the location of the service account key
SA_FILE = ''

# Enter the administrator to call as here.
ADMIN_EMAIL = ''

# Enter the Resource Name. You can get this from the value of the name
# field in the results of a List method call
RESOURCE_NAME = ''

if not SA_FILE:
  print('Please specify the location of the service account key file')
if not ADMIN_EMAIL:
  print('Please specify the email of the administrator to call as')
if not RESOURCE_NAME:
  print('Please specify the Resource Name to be retrieved')

if not SA_FILE or not ADMIN_EMAIL or not RESOURCE_NAME:
  exit(-1)

def create_delegated_credentials(user_email):
  credentials = service_account.Credentials.from_service_account_file(
      SA_FILE,
      scopes=['https://www.googleapis.com/auth/cloud-identity.devices'])

  delegated_credentials = credentials.with_subject(user_email)

  return delegated_credentials

######################################################################
# AUTHENTICATE the service account and retrieve an oauth2 access token

request = google.auth.transport.requests.Request()
dc = create_delegated_credentials(ADMIN_EMAIL)
dc.refresh(request)
print('Access token: ' + dc.token + '\n')

###############################
# Get the resource
get_url = BASE_URL + RESOURCE_NAME
auth_header = {'Authorization': 'Bearer ' + dc.token}
content = urllib.request.urlopen(
    urllib.request.Request(get_url, headers=auth_header)).read()
response = json.loads(content)
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(response)