Krótkie wprowadzenie do Javy dla sprzedawców

Wykonaj czynności opisane w tym krótkim przewodniku, a za ok. 10 minut otrzymasz prostą aplikację wiersza poleceń w języku Java, która będzie wysyłać żądania do interfejsu API do rejestracji typu zero-touch.

Wymagania wstępne

Aby uruchomić ten krótki przewodnik, musisz mieć:

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

  1. Aby utworzyć lub wybrać projekt w Google Developers Console i automatycznie włączyć ten interfejs API, użyj tego kreatora. Kliknij Dalej, a następnie Otwórz dane logowania.
  2. W polu Do jakich danych będziesz mieć dostęp? wybierz Dane aplikacji.
  3. Kliknij Dalej. Powinna pojawić się prośba o utworzenie konta usługi.
  4. Podaj nazwę konta usługi opisową.
  5. Zwróć uwagę na identyfikator konta usługi (wygląda on jak adres e-mail), ponieważ będziesz go używać później.
  6. Ustaw Rolę na Konta usługi > Użytkownik konta usługi.
  7. Aby zakończyć tworzenie konta usługi, kliknij Gotowe.
  8. Kliknij adres e-mail utworzonego przez siebie konta usługi.
  9. Kliknij **Klucze**.
  10. Kliknij **Dodaj klucz**, a następnie **Utwórz nowy klucz**.
  11. Jako **Typ klucza** wybierz **JSON**.
  12. Kliknij Create (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. W polu Adres e-mail wpisz adres utworzonego przez Ciebie konta usługi.
  5. Kliknij Połącz konto usługi, aby używać konta usługi na koncie rejestracji typu zero-touch.

Krok 3. Przygotuj projekt

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

  1. Aby utworzyć nowy projekt w katalogu roboczym, uruchom to polecenie:

    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 poniższy kod i zapisz go. Wpisz swój identyfikator partnera sprzedawcy jako wartość 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 zazwyczaj wymagają podania identyfikatora partnera sprzedawcy jako argumentu. Aby znaleźć swój identyfikator partnera w portalu rejestracji typu zero-touch, wykonaj te czynności:

  1. Otwórz portal. W razie potrzeby zaloguj się.
  2. Kliknij Konta usługi.
  3. Skopiuj swój identyfikator partnera z wiersza Twój identyfikator sprzedawcy.

Krok 5. Uruchom przykład

Użyj skryptu w systemie operacyjnym, by uruchomić skrypt w pliku. Na komputerach UNIX i Mac wykonaj w terminalu to polecenie:

gradle -q run

Rozwiązywanie problemów

Powiedz nam, co poszło nie tak w krótkim wprowadzeniu, a my postaramy się rozwiązać ten problem. Aby dowiedzieć się, jak zero-touch używa kont usługi do autoryzowania wywołań interfejsu API, przeczytaj artykuł Autoryzacja.

Więcej informacji