Siga as etapas deste guia de início rápido e, em cerca de 10 minutos, você terá um app de linha de comando Java simples que faz solicitações à API para revendedores do registro sem toque.
Pré-requisitos
Para executar este guia de início rápido, você vai precisar de:
- Uma Conta do Google que faça parte da sua conta de revendedor do registro sem toque. Se você ainda não fez a integração, siga as etapas em Primeiros passos no guia do portal do revendedor.
- Java 1.7 ou superior.
- Gradle 2.3 ou mais recente.
- Acesso à Internet e a um navegador da Web.
Etapa 1: ativar a API de registro sem toque
- 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 .
- Defina Quais dados você vai acessar? como Dados do aplicativo.
- Clique em Próxima. Você vai receber uma solicitação para criar uma conta de serviço.
- Dê um nome descritivo para Nome da conta de serviço.
- Anote o ID da conta de serviço (parece um endereço de e-mail), porque você vai precisar dele mais tarde.
- Defina o Papel como Contas de serviço > Usuário da conta de serviço.
- Clique em Concluído para terminar a criação da conta de serviço.
- Clique no endereço de e-mail da conta de serviço que você criou.
- Clique em **Chaves**.
- Clique em **Adicionar chave** e em **Criar nova chave**.
- Em **Tipo de chave**, selecione **JSON**.
- Clique em Criar, e a chave privada será salva no seu computador.
- Clique em **Fechar**.
- Mova o arquivo para o diretório de trabalho e renomeie-o como
service_account_key.json
.
Etapa 2: vincular a conta de serviço
- Abra o portal do registro sem toque. Talvez seja necessário fazer login.
- Clique em Contas de serviço.
- Clique em Vincular conta de serviço.
- Defina Endereço de e-mail como o endereço da conta de serviço que você criou.
- Clique em Vincular conta de serviço para usar a conta de serviço com sua conta de inscrição sem contato.
Etapa 3: preparar o projeto
Siga as etapas abaixo para configurar seu projeto do Gradle:
Execute o seguinte comando para criar um novo projeto no diretório de trabalho:
gradle init --type basic mkdir -p src/main/java src/main/resources
Copie o arquivo
service_account_key.json
que você salvou na etapa 1 para o diretóriosrc/main/resources/
criado acima.Abra o arquivo
build.gradle
padrão e substitua o conteúdo por este código:apply plugin: 'java' apply plugin: 'application' mainClassName = 'ResellerQuickstart' sourceCompatibility = 1.7 targetCompatibility = 1.7 version = '1.0' repositories { mavenCentral() } dependencies { compile 'com.google.api-client:google-api-client:1.30.11' compile 'com.google.apis:google-api-services-androiddeviceprovisioning:+' compile 'com.google.oauth-client:google-oauth-client-jetty:+' }
Etapa 4: configurar o exemplo
Crie um arquivo chamado src/main/java/ResellerQuickstart.java
, copie o código a seguir e salve o arquivo. Insira seu próprio ID de parceiro
de revenda como o valor de PARTNER_ID
(a primeira linha do app).
import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.services.androiddeviceprovisioning.v1.AndroidProvisioningPartner; import com.google.api.services.androiddeviceprovisioning.v1.model.Company; import com.google.api.services.androiddeviceprovisioning.v1.model.ListCustomersResponse; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Arrays; import java.util.List; /** * This class forms the quickstart introduction to the zero-touch enrollemnt * reseller API. */ public class ResellerQuickstart { // TODO: replace this with your partner reseller ID. private static long PARTNER_ID = 11036885; // Use a single scope for the all methods in the reseller API. private static final List<String> SCOPES = Arrays.asList("https://www.googleapis.com/auth/androidworkprovisioning"); private static final String APP_NAME = "Zero-touch Reseller Java Quickstart"; // Global shared instances. private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); private static HttpTransport HTTP_TRANSPORT; static { try { HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); } catch (Throwable t) { t.printStackTrace(); System.exit(1); } } /** * Creates a Credential object with the correct OAuth2 authorization * for the service account that calls the reseller API. The service * endpoint invokes this method when setting up a new service instance. * @return an authorized Credential object. * @throws IOException */ public static Credential authorize() throws IOException { // Load the service account key from the JSON file. InputStream in = ResellerQuickstart.class.getResourceAsStream("/service_account_key.json"); // Create the credential scoped to the zero-touch enrollemnt // reseller APIs. GoogleCredential credential = GoogleCredential .fromStream(in) .createScoped(SCOPES); return credential; } /** * Builds and returns an authorized zero-touch enrollment API client service. * Use the service endpoint to call the API methods. * @return an authorized client service endpoint * @throws IOException */ public static AndroidProvisioningPartner getService() throws IOException { Credential credential = authorize(); return new AndroidProvisioningPartner.Builder( HTTP_TRANSPORT, JSON_FACTORY, credential) .setApplicationName(APP_NAME) .build(); } /** * Runs the zero-touch enrollment quickstart app. * @throws IOException */ public static void main(String[] args) throws IOException { // Create a zero-touch enrollment API service endpoint. AndroidProvisioningPartner service = getService(); // Send an API request to list all our customers. AndroidProvisioningPartner.Partners.Customers.List request = service.partners().customers().list(PARTNER_ID); ListCustomersResponse response = request.execute(); // Print out the details of each customer. if (response.getCustomers() != null) { java.util.List<Company> customers = response.getCustomers(); for (Company customer : customers) { System.out.format("Name:%s ID:%d\n", customer.getCompanyName(), customer.getCompanyId()); } } else { System.out.println("No customers found"); } } }
ID do parceiro
As chamadas de API geralmente precisam do seu ID de parceiro de revendedor como argumento. Para encontrar o ID do parceiro no portal de registro sem toque, siga as etapas abaixo:
- Abra o portal. Talvez seja necessário fazer login.
- Clique em Contas de serviço.
- Copie o número do ID do parceiro na linha Seu ID de revendedor.
Etapa 5: executar o exemplo
Use a ajuda do sistema operacional para executar o script no arquivo. Em computadores UNIX e Mac, execute o comando abaixo no terminal:
gradle -q run
Solução de problemas
Informe o que deu errado com o guia de início rápido, e vamos trabalhar para corrigir o problema. Para saber como a operação sem contato usa contas de serviço para autorizar chamadas de API, leia Autorização.