Krótkie wprowadzenie do Javy dla sprzedawców

Wykonaj czynności opisane w tym krótkim przewodniku, a w ciągu około 10 minut prostą aplikację wiersza poleceń Java, która wysyła żądania do rejestracji typu zero-touch. rejestracji interfejsu API sprzedawcy.

Wymagania wstępne

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

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

  1. Użyj tego w kreatorze, aby utworzyć lub wybrać projekt w Google Developers Console oraz automatycznie włączyć interfejs API. Kliknij Dalej, a następnie Przejdź do danych logowania .
  2. Ustaw Do jakich danych będziesz uzyskiwać dostęp? na Dane aplikacji.
  3. Kliknij Dalej. Powinien wyświetlić się monit o utworzenie usługi. koncie.
  4. Nadaj opisową nazwę Nazwa konta usługi.
  5. Zapisz identyfikator konta usługi (wygląda jak adres e-mail), bo użyjemy jej później.
  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 konta usługi.
  9. Kliknij **Klucze**.
  10. Kliknij **Dodaj klucz**, a następnie **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 Usługa kont.
  3. Kliknij Połącz konto usługi.
  4. Ustaw Adres e-mail na adres utworzonego przez siebie konta usługi.
  5. Kliknij Połącz konto usługi, aby używać konta usługi w przypadku rejestracji typu zero-touch. konta rejestracji.

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 src/main/resources/ utworzony przez Ciebie powyżej katalog.

  3. Otwórz domyślny plik build.gradle i zastąp jego zawartość plikiem ten kod:

    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 i skopiuj go do następujący kod i zapisz plik. Wstaw własnego partnera sprzedawcy ID jako wartość parametru 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ą identyfikatora partnera sprzedawcy jako argumentu. Aby znaleźć identyfikatora partnera z portalu rejestracji typu zero-touch wykonaj te czynności:

  1. Otwórz portal. W razie potrzeby zaloguj się.
  2. Kliknij Usługa kont.
  3. Skopiuj identyfikator partnera z wiersza Twój identyfikator sprzedawcy.

Krok 5. Uruchamianie przykładu

Uruchom skrypt z pliku, korzystając z pomocy systemu operacyjnego. W systemie UNIX i Mac komputerach, uruchom w terminalu to polecenie:

gradle -q run

Rozwiązywanie problemów

Powiedz nam, co poszło nie tak w ramach tego krótkiego wprowadzenia, a my postaramy się napraw to. Aby dowiedzieć się, jak rejestracja typu zero-touch używa kont usługi do autoryzowania wywołań interfejsu API, przeczytaj artykuł Autoryzacja.

Więcej informacji