Guia de início rápido do Python para clientes que usam uma conta de serviço

Siga as etapas deste guia de início rápido e, em cerca de 10 minutos, você terá um app simples de linha de comando Python que faz solicitações à API de inscrição do cliente sem contato usando uma conta de serviço.

Pré-requisitos

Para executar este guia de início rápido, você precisa do seguinte:

  • Uma conta de serviço vinculada ao seu cliente de registro sem toque do Compute Engine. Consulte Começar.
  • Python 3.0 ou mais recente.
  • A ferramenta de gerenciamento de pacotes pip.
  • Acesso à Internet e a um navegador da Web.

Etapa 1: ativar a API de registro sem toque

  1. Use este assistente para criar ou selecionar um projeto no Google Developers Console e ativar a API automaticamente. Clique em Continuar e em Acessar credenciais .
  2. Defina Quais dados você vai acessar? como Dados do aplicativo.
  3. Clique em Próxima. Você vai receber uma solicitação para criar um serviço do Compute Engine.
  4. Dê um nome descritivo para o Nome da conta de serviço.
  5. Anote o ID da conta de serviço (parece um endereço de e-mail), porque você vai precisar dele mais tarde.
  6. Defina Papel como Contas de serviço > Usuário da conta de serviço.
  7. Clique em Concluído para terminar a criação da conta de serviço.
  8. Clique no endereço de e-mail da conta de serviço que você criou.
  9. Clique em **Chaves**.
  10. Clique em **Adicionar chave** e depois em **Criar nova chave**.
  11. Em **Tipo de chave**, selecione **JSON**.
  12. Clique em Criar. O download da chave privada é feito no computador.
  13. Clique em **Fechar**.
  14. Mova o arquivo para o diretório de trabalho e renomeie-o como service_account_key.json.

Etapa 2: instalar a biblioteca de cliente do Google

Execute o seguinte comando para instalar a biblioteca usando pip:

pip install --upgrade google-api-python-client oauth2client

Consulte a página de instalação da biblioteca para conferir as diferentes opções de instalação.

Etapa 3: configurar o exemplo

Crie um arquivo chamado quickstart.py no seu diretório de trabalho. Copie no código a seguir e salve o arquivo.

#!/usr/bin/env python
# -*- coding: utf-8 -*-
"""Zero-touch enrollment quickstart sample.

This script forms the quickstart introduction to the zero-touch enrollemnt
customer API. To learn more, visit https://developer.google.com/zero-touch
"""

import sys
from apiclient import discovery
import httplib2
from oauth2client.service_account import ServiceAccountCredentials

# A single auth scope is used for the zero-touch enrollment customer API.
SCOPES = ['https://www.googleapis.com/auth/androidworkzerotouchemm']
SERVICE_ACCOUNT_KEY_FILE = 'service_account_key.json'


def get_credential():
  """Creates a Credential object with the correct OAuth2 authorization.

  Uses the service account key stored in SERVICE_ACCOUNT_KEY_FILE.

  Returns:
    Credentials, the user's credential.
  """
  credential = ServiceAccountCredentials.from_json_keyfile_name(
    SERVICE_ACCOUNT_KEY_FILE, SCOPES)

  if not credential or credential.invalid:
    print('Unable to authenticate using service account key.')
    sys.exit()
  return credential


def get_service():
  """Creates a service endpoint for the zero-touch enrollment API.

  Builds and returns an authorized API client service for v1 of the API. Use
  the service endpoint to call the API methods.

  Returns:
    A service Resource object with methods for interacting with the service.
  """
  http_auth = get_credential().authorize(httplib2.Http())
  return discovery.build('androiddeviceprovisioning', 'v1', http=http_auth)


def main():
  """Runs the zero-touch enrollment quickstart app.
  """
  # Create a zero-touch enrollment API service endpoint.
  service = get_service()

  # Get the customer's account. Because a customer might have more
  # than one, limit the results to the first account found.
  response = service.customers().list(pageSize=1).execute()

  if 'customers' not in response:
    # No accounts found for the user. Confirm the Google Account
    # that authorizes the request can access the zero-touch portal.
    print('No zero-touch enrollment account found.')
    sys.exit()
  customer_account = response['customers'][0]['name']

  # Send an API request to list all the DPCs available using the customer
  # account.
  results = service.customers().dpcs().list(parent=customer_account).execute()

  # Print out the details of each DPC.
  for dpc in results['dpcs']:
    # Some DPCs may not have a name, so replace with a marker.
    if 'dpcName' in dpc:
      dpcName = dpc['dpcName']
    else:
      dpcName = "-"
    print('Name:{0}  APK:{1}'.format(dpcName, dpc['packageName']))


if __name__ == '__main__':
  main()

Etapa 4: adicionar a chave da conta de serviço

Copie o service_account_key.json que você fez o download ao criar sua conta de serviço no diretório de trabalho.

Etapa 5: executar a amostra

Use a ajuda do seu sistema operacional para executar o script no arquivo. Em computadores UNIX e Mac, execute o comando abaixo no terminal:

python quickstart.py

Observações

Saiba mais