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:
- Una Cuenta de Google que sea miembro de tu cuenta de revendedor de inscripción automática Si aún no te has integrado, sigue los pasos que se indican en Cómo comenzar en la Guía del portal para revendedores.
- Java 1.7 o superior
- Gradle 2.3 o versiones posteriores
- Acceso a Internet y un navegador web
Paso 1: Activa la API de inscripción automática
- Usa este asistente para crear o seleccionar un proyecto en Google Play Console y activar automáticamente la API. Haz clic en Continuar y, luego, en Ir a Credenciales.
- Establece ¿A qué datos accederás? en Datos de la aplicación.
- Haz clic en Siguiente. Se te pedirá que crees una cuenta de servicio.
- Asigna un nombre descriptivo al Nombre de la cuenta de servicio.
- Anota el ID de la cuenta de servicio (se parece a una dirección de correo electrónico), ya que lo necesitarás más adelante.
- Establece Rol en Cuentas de servicio > Usuario de cuenta de servicio.
- Haz clic en Listo para terminar de crear la cuenta de servicio.
- Haz clic en la dirección de correo electrónico de la cuenta de servicio que creaste.
- Haz clic en **Llaves**.
- Haz clic en **Agregar clave** y, luego, en **Crear clave nueva**.
- En **Key type**, selecciona **JSON**.
- Haz clic en Crear y la clave privada se descargará en tu computadora.
- Haz clic en **Cerrar**.
- Mueve el archivo a tu directorio de trabajo y cámbiale el nombre a
service_account_key.json
.
Paso 2: Vincula la cuenta de servicio
- Abre el portal de inscripción automática. Es posible que debas acceder.
- Haz clic en Cuentas de servicio.
- Haz clic en Vincular cuenta de servicio.
- Establece Dirección de correo electrónico en la dirección de la cuenta de servicio que creaste.
- Haz clic en Vincular cuenta de servicio para usar la cuenta de servicio con tu cuenta de inscripción sin intervención.
Paso 3: Prepara el proyecto
Sigue los pasos que se indican a continuación para configurar tu proyecto de Gradle:
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
Copia el archivo
service_account_key.json
que descargaste en el paso 1 en el directoriosrc/main/resources/
que creaste antes.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
, copia el siguiente código y guárdalo. 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 de socio
Por lo general, las llamadas a la API necesitan tu ID de socio de revendedor como argumento. Para encontrar tu ID de socio en el portal de inscripción sin intervención manual, sigue estos pasos:
- Abre el portal. Es posible que debas acceder.
- Haz clic en Cuentas de servicio.
- Copia el número de ID de socio de 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 computadoras con UNIX y Mac, ejecuta el siguiente comando en la terminal:
gradle -q run
Solución de problemas
Cuéntanos qué salió mal con la guía de inicio rápido y trabajaremos para solucionarlo. Para obtener información sobre cómo el modo sin intervención usa cuentas de servicio para autorizar llamadas a la API, lee Autorización.