Guía de inicio rápido de Java para revendedores

Sigue los pasos de esta guía de inicio rápido y, en unos 10 minutos, tendrás una app de línea de comandos de Java simple que realice solicitudes a la API del revendedor de inscripción sin intervención.

Requisitos previos

Para ejecutar esta guía de inicio rápido, necesitarás lo siguiente:

Paso 1: Activa la API de inscripción automática

  1. Utiliza esto para crear o seleccionar un proyecto en Google Developers Console y activará automáticamente la API. Haz clic en Continuar y, luego, en Ir a credenciales.
  2. Establece ¿A qué datos accederás? en Datos de la aplicación.
  3. Haz clic en Siguiente. Se te pedirá que crees un servicio de servicio predeterminada.
  4. Asigna un nombre descriptivo para Nombre de la cuenta de servicio.
  5. Anota el ID de cuenta de servicio (parece una dirección de correo electrónico) porque usarla más tarde.
  6. Configura el Rol como Cuentas de servicio > Usuario de cuenta de servicio.
  7. Haz clic en Listo para terminar de crear la cuenta de servicio.
  8. Haz clic en la dirección de correo electrónico de la cuenta de servicio que creaste.
  9. Haz clic en **Claves**.
  10. Haz clic en **Agregar clave** y, luego, en **Crear clave nueva**.
  11. En **Key type**, selecciona **JSON**.
  12. Haz clic en Crear, y la clave privada se descargará en tu computadora.
  13. Haz clic en **Close**.
  14. Mueve el archivo a tu directorio de trabajo y cámbiale el nombre a service_account_key.json.
  1. Abre el portal de inscripción automática. Es posible que debas acceder.
  2. Haz clic en Cuentas de servicio.
  3. Haz clic en Vincular cuenta de servicio.
  4. Configura la Dirección de correo electrónico como la dirección de la cuenta de servicio que creaste.
  5. Haz clic en Vincular cuenta de servicio para usar la cuenta de servicio con tu inscripción automática una cuenta de inscripción.

Paso 3: Prepara el proyecto

Sigue los pasos que se indican a continuación para configurar tu proyecto de Gradle:

  1. Ejecuta el siguiente comando para crear un proyecto nuevo en el directorio de trabajo:

    gradle init --type basic
    mkdir -p src/main/java src/main/resources
    
  2. Copia el archivo service_account_key.json que descargaste en el paso 1 en el El directorio src/main/resources/ que creaste anteriormente.

  3. Abre el archivo build.gradle predeterminado y reemplaza su contenido por el siguiente 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:+'
    }
    

Paso 4: Configura la muestra

Crea un archivo llamado src/main/java/ResellerQuickstart.java y cópialo en la siguiente código y guarda el archivo. Inserta tu propio ID de socio minorista como el valor de PARTNER_ID (la primera línea de la 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 del socio

Por lo general, las llamadas a la API necesitan su ID de socio revendedor como argumento. Para encontrar tu ID de socio del portal de inscripción automática, sigue los pasos que se indican a continuación:

  1. Abre el portal. Es posible que debas acceder.
  2. Haz clic en Cuentas de servicio.
  3. Copia el número de ID de socio que aparece en la línea Tu ID de revendedor.

Paso 5: Ejecuta la muestra

Usa la ayuda de tu sistema operativo para ejecutar la secuencia de comandos en el archivo. En UNIX y Mac computadoras, ejecuta el siguiente comando en la terminal:

gradle -q run

Solución de problemas

Cuéntanos qué salió mal en la guía de inicio rápido y trabajaremos para y solucionar el problema. Para descubrir cómo la inscripción automática usa cuentas de servicio para autorizar llamadas a la API, consulta Autorización.

Más información