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

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

Pré-requisitos

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

  • Uma conta de serviço vinculada à sua conta de cliente do registro sem toque. Consulte Primeiros passos.
  • Python 3.0 ou superior.
  • a ferramenta de gerenciamento de pacotes pip
  • Acesso à Internet e a um navegador da Web.

Etapa 1: ativar a API do 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 seguida, em Acessar credenciais.
  2. Defina Quais dados você acessará? como Dados de aplicativos.
  3. Clique em Próxima. Você precisará criar uma conta de serviço.
  4. Dê um nome descritivo para Nome da conta de serviço.
  5. Anote o ID da conta de serviço, que parece um endereço de e-mail, porque você o usará 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 **Add key** e em **Create new key**.
  11. Em **Tipo de chave**, selecione **JSON**.
  12. Clique em Criar e a chave privada será salva 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 o pip:

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

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

Etapa 3: configurar a amostra

Crie um arquivo chamado quickstart.py no diretório de trabalho. Copie o 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ê salvou quando criou sua conta de serviço no diretório de trabalho.

Etapa 5: executar a amostra

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

python quickstart.py

Observações

  • Evite compartilhar o arquivo service_account_key.json com outras pessoas. Tenha cuidado para não incluí-lo nos repositórios de código-fonte. Leia mais sobre como gerenciar secrets de conta de serviço.

Saiba mais