建立裝置

本頁面說明如何建立裝置。

事前準備

請先執行下列工作,再繼續瞭解本頁資訊:

建立裝置

以下範例說明如何建立裝置。

REST

如要建立裝置,請使用 customer (機構) 的名稱和裝置物件呼叫 devices.create()

Python HTTP

以下範例顯示輔助函式,可使用 Python HTTP 程式庫建立裝置:

"""Example script to use the create method of 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')

###############################
# Create the Device
header = {
    'authorization': 'Bearer ' + dc.token,
    'Content-Type': 'application/json'
}
body = {
    'serialNumber': 'someSerial',  # the serial number of your device.

    # see values in
    # https://cloud.google.com/identity/docs/reference/rest/v1/devices#DeviceType
    'deviceType': 'LINUX'
}

serialized_body = json.dumps(body, separators=(',', ':'))

request_url = BASE_URL + 'devices'
print('Request URL: ' + request_url)
print('Request body: ' + serialized_body)

serialized_body = json.dumps(body, separators=(',', ':'))
request = urllib.request.Request(request_url, serialized_body, headers=header)
request.get_method = lambda: 'POST'

try:
  contents = urllib.request.urlopen(request)
except urllib.error.HTTPError as e:
  if e.code == 409:
    print('The request was invalid. Perhaps the device is already present?')
  else:
    print('Unknown error occurred: {}', e.code)
  exit(-1)

create_response = json.loads(contents.read())
inner_response = create_response['response']
pp = pprint.PrettyPrinter(indent=4)
pp.pprint(inner_response)