Krótkie wprowadzenie do Javy dla sprzedawców

Postępuj zgodnie z instrukcjami z tego krótkiego przewodnika, a za około 10 minut będziesz mieć prostą aplikację wiersza poleceń w języku Java, która wysyła żądania do interfejsu API resellera do rejestracji bez interwencji człowieka.

Wymagania wstępne

Aby skorzystać z tego krótkiego wprowadzenia, musisz mieć:

  • Konto Google będące członkiem konta sprzedawcy obsługującego rejestrację typu zero-touch. Jeśli nie udało Ci się jeszcze rozpocząć procesu wprowadzania, wykonaj czynności opisane w sekcji Zaczynamyprzewodniku po portalu dla sprzedawców.
  • Java 1.7 lub nowsza.
  • Gradle w wersji 2.3 lub nowszej.
  • dostęp do internetu i przeglądarki internetowej;

Krok 1. Włącz interfejs API rejestracji typu zero-touch

  1. Użyj tego kreatora, aby utworzyć lub wybrać projekt w Konsoli programistów Google i automatycznie włączyć interfejs API. Kliknij kolejno Dalej i Przejdź do danych logowania.
  2. Ustaw opcję Do jakich danych będziesz uzyskiwać dostęp? na Dane aplikacji.
  3. Kliknij Dalej. Pojawi się prośba o utworzenie konta usługi.
  4. Podaj opisową nazwę w polu Nazwa konta usługi.
  5. Zapisz identyfikator konta usługi (wygląda jak adres e-mail), ponieważ będziesz go później używać.
  6. Ustaw Rola na Konta usługi > Użytkownik kont usługi.
  7. Aby zakończyć tworzenie konta usługi, kliknij Gotowe.
  8. Kliknij adres e-mail utworzonego przez Ciebie konta usługi.
  9. Kliknij **Klucze**.
  10. Kliknij kolejno **Dodaj klucz** i **Utwórz nowy klucz**.
  11. W polu **Typ klucza** wybierz **JSON**.
  12. Kliknij Utwórz, a klucz prywatny zostanie pobrany na komputer.
  13. Kliknij **Zamknij**.
  14. Przenieś plik do katalogu roboczego i zmień jego nazwę na service_account_key.json.
  1. Otwórz portal rejestracji typu zero-touch. W razie potrzeby zaloguj się.
  2. Kliknij Konta usługi.
  3. Kliknij Połącz konto usługi.
  4. Ustaw Adres e-mail na adres utworzonego przez siebie konta usługi.
  5. Aby używać konta usługi z kontem do rejestracji bez interwencji człowieka, kliknij Połącz konto usługi.

Krok 3. Przygotuj projekt

Aby skonfigurować projekt Gradle, wykonaj te czynności:

  1. Uruchom to polecenie, aby utworzyć nowy projekt w katalogu roboczym:

    gradle init --type basic
    mkdir -p src/main/java src/main/resources
    
  2. Skopiuj plik service_account_key.json pobrany w kroku 1 do utworzonego wcześniej katalogu src/main/resources/.

  3. Otwórz domyślny plik build.gradle i zastąp jego zawartość tym kodem:

    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:+'
    }
    

Krok 4. Skonfiguruj próbkę

Utwórz plik o nazwie src/main/java/ResellerQuickstart.java, skopiuj do niego podany niżej kod i zapisz go. Wstaw własny identyfikator partnera sprzedawcy jako wartość pola PARTNER_ID (pierwszy wiersz aplikacji).

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");
    }
  }
}

Identyfikator partnera

Wywołania interfejsu API zwykle wymagają podania identyfikatora partnera jako argumentu. Aby znaleźć identyfikator partnera w portalu rejestracji typu zero-touch:

  1. Otwórz portal. W razie potrzeby zaloguj się.
  2. Kliknij Konta usługi.
  3. Skopiuj numer identyfikatora partnera z wiersza Identyfikator sprzedawcy.

Krok 5. Uruchom kod

Uruchom skrypt w pliku za pomocą systemu operacyjnego. Na komputerach z systemem UNIX i Mac uruchom w terminalu to polecenie:

gradle -q run

Rozwiązywanie problemów

Powiedz nam, co poszło nie tak w szybkim przewodniku, a my postaramy się rozwiązać problem. Aby dowiedzieć się, jak usługa bezdotykowa używa kont usługi do autoryzacji wywołań interfejsu API, przeczytaj artykuł Autoryzacja.

Więcej informacji