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

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 para a API de inscrição do cliente sem contato.

Pré-requisitos

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

  • Uma Conta do Google que é membro da sua conta de registro sem toque para clientes. Consulte o artigo 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. Clique em Cancelar em "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 do produto, se ainda não tiver sido definido, e clique no botão Salvar.
  4. Selecione a guia Credentials, clique no botão Create credentials e selecione OAuth client ID.
  5. Selecione o tipo de aplicativo Outro, insira o nome "Guia de início rápido" e clique no botão Criar.
  6. Clique em OK para fechar o painel 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 comando a seguir 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 conferir as diferentes opções de instalação.

Etapa 3: configurar o exemplo

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 seu 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 não funcionar, copie o URL do console e abra-o no navegador. Se você ainda não estiver conectado à sua Conta do Google, será solicitado que você faça 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 Aceitar.
  3. Feche a guia do navegador. O app continua em execução.

Observações

  • Como a biblioteca de cliente da API do Google armazena dados de autorização no sistema de arquivos, as inicializações 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

Aqui estão alguns itens comuns que você precisará verificar. Informe o que deu errado com o guia de início rápido, e vamos trabalhar para corrigir o problema.

  • Verifique se você está autorizando chamadas de API com a mesma Conta do Google que é membro da sua conta de cliente de registro sem toque. Tente fazer login no portal de 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 de cliente.

Saiba mais