Guia de início rápido do Python para clientes

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.

Pré-requisitos

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

  • Uma Conta do Google que faz parte da 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. Clique em Cancelar na opção "Criar credenciais".
  3. Na parte superior da página, selecione a guia OAuth consent screen. Selecione um Endereço de e-mail, insira um Nome de produto, se ainda não tiver definido, e clique no botão Salvar.
  4. Selecione a guia Credenciais, clique no botão Criar credenciais e selecione ID do cliente OAuth.
  5. Selecione o tipo de aplicativo Outro, insira o nome "Início rápido" e clique no botão Criar.
  6. Clique em OK para dispensar o painel do cliente OAuth.
  7. Clique em Fazer o download do JSON.
  8. Mova o arquivo para o diretório de trabalho e renomeie-o como client_secret.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 import tools
from oauth2client.client import flow_from_clientsecrets
from oauth2client.file import Storage

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


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

  Ask the user to authorize the request using their Google Account in their
  browser. Because this method stores the cedential in the
  USER_CREDENTIAL_FILE, the user is typically only asked to the first time they
  run the script.

  Returns:
    Credentials, the user's credential.
  """
  flow = flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES)
  storage = Storage(USER_CREDENTIAL_FILE)
  credential = storage.get()

  if not credential or credential.invalid:
    credential = tools.run_flow(flow, storage)  # skipping flags for brevity
  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: 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

Na primeira vez que você executar o app, será necessário autorizar o acesso:

  1. O app tenta abrir uma nova guia no navegador padrão. Se isso falhar, copie o URL do console e abra-o no navegador. Se você ainda não estiver conectado à sua Conta do Google, será solicitado a fazer login. Se você estiver conectado a várias Contas do Google, a página solicitará que você selecione uma conta para a autorização.
  2. Clique em Accept.
  3. Feche a guia do navegador. O aplicativo continuará em execução.

Observações

  • Como a biblioteca de cliente da API do Google armazena dados de autorização no sistema de arquivos, os lançamentos subsequentes não solicitam autorização.
  • Para redefinir os dados de autorização do app, exclua o arquivo user_credential.json e execute o app novamente.
  • O fluxo de autorização neste guia de início rápido é ideal para um app de linha de comando. Para saber como adicionar autorização a um app da Web, consulte Como usar o OAuth 2.0 para aplicativos de servidor da Web.

Solução de problemas

Veja algumas coisas comuns que convém verificar. Conte o que deu errado no guia de início rápido, e nós trabalharemos para corrigi-lo.

  • Verifique se você está autorizando chamadas de API com a mesma Conta do Google que é membro da sua conta de cliente do registro sem toque. Tente fazer login no portal do registro sem toque usando a mesma Conta do Google para testar seu acesso.
  • Confirme se a conta aceitou os Termos de Serviço mais recentes no portal. Consulte Contas do cliente.

Saiba mais