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 aplicativo de linha de comando Python simples que faz solicitações para os registros sem toque a API de registro do cliente.

Pré-requisitos

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

  • Uma Conta do Google, que faça parte do seu cliente de registro sem toque do Compute Engine. Consulte Adquirir iniciado.
  • Python 3.0 ou superior.
  • 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, digite o Nome do produto, caso ainda não tenha sido definido. Clique no botão Salvar.
  4. Selecione a guia Credenciais e clique no botão Criar credenciais. e selecione ID do cliente OAuth.
  5. Selecione o tipo de aplicativo Outro e insira o nome. "Guia de início rápido" e clique no botão Criar .
  6. Clique em OK para dispensar 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 seguinte comando para instalar a biblioteca usando o pip:

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

Consulte as instruções de instalação da biblioteca página de configuração .

Etapa 3: configurar a amostra

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 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 seu sistema operacional para executar o script no arquivo. Em UNIX e Mac computadores, 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 falhar, copie o URL console do Cloud e abri-lo no navegador. Se você ainda não tiver feito login na sua Conta do Google, uma solicitação de 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 aplicativo continuará em execução.

Observações

  • Como a biblioteca cliente da API do Google armazena dados de autorização no sistema de arquivos, as Os lançamentos não solicitam autorização.
  • Para redefinir os dados de autorização do app, exclua o 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 aprender a adicionar autorização para um aplicativo 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. Conte o que deu errado com o guia de início rápido para que possamos corrigir o problema.

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

Saiba mais