Folgen Sie der Anleitung in dieser Kurzanleitung. In etwa 10 Minuten haben Sie eine einfache Java-Befehlszeilen-App, die Anfragen an die Reseller API für die benutzerlose Registrierung sendet.
Vorbereitung
Für diese Kurzanleitung benötigen Sie Folgendes:
- Ein Google-Konto, das zu Ihrem Reseller für die Zero-Touch-Registrierung gehört Konto. Wenn Sie die Einrichtung noch nicht durchgeführt haben, folgen Sie den Schritten unter Jetzt starten in im Leitfaden für das Reseller-Portal.
- Java 1.7 oder höher.
- Gradle 2.3 oder höher
- Zugriff auf das Internet und einen Webbrowser
Schritt 1: Zero-Touch-Registrierungs-API aktivieren
- Verwenden Sie diese , um ein Projekt in der Google Developers Console zu erstellen oder auszuwählen. die API automatisch aktivieren. Klicken Sie auf Weiter und dann auf Zu den Anmeldedaten.
- Wählen Sie unter Auf welche Daten wird zugegriffen? die Option Anwendungsdaten aus.
- Klicken Sie auf Weiter. Sie werden aufgefordert, ein Dienstkonto zu erstellen.
- Geben Sie unter Name des Dienstkontos einen aussagekräftigen Namen ein.
- Notieren Sie sich die Dienstkonto-ID (sieht aus wie eine E-Mail-Adresse), da Sie später verwenden können.
- Legen Sie die Rolle auf Dienstkonten > Dienstkontonutzer.
- Klicken Sie auf Fertig, um das Erstellen des Dienstkontos abzuschließen.
- Klicken Sie auf die E-Mail-Adresse des von Ihnen erstellten Dienstkontos.
- Klicken Sie auf **Schlüssel**.
- Klicken Sie auf „Schlüssel hinzufügen“ und dann auf „Neuen Schlüssel erstellen“.
- Wählen Sie als **Schlüsseltyp** die Option **JSON** aus.
- Klicken Sie auf Erstellen. Der private Schlüssel wird auf Ihren Computer heruntergeladen.
- Klicken Sie auf **Schließen**.
- Verschieben Sie die Datei in Ihr Arbeitsverzeichnis und benennen Sie sie in
service_account_key.json
um.
Schritt 2: Dienstkonto verknüpfen
- Öffnen Sie das Portal für die Zero-Touch-Registrierung. Eventuell musst du dich anmelden.
- Klicken Sie auf Dienstkonten.
- Klicken Sie auf Dienstkonto verknüpfen.
- Geben Sie unter E-Mail-Adresse die Adresse des von Ihnen erstellten Dienstkontos ein.
- Klicken Sie auf Dienstkonto verknüpfen, um das Dienstkonto mit Ihrer Zero-Touch-Registrierung zu verwenden. Registrierungskonto.
Schritt 3: Projekt vorbereiten
So richten Sie Ihr Gradle-Projekt ein:
Führen Sie den folgenden Befehl aus, um im Arbeitsverzeichnis ein neues Projekt zu erstellen:
gradle init --type basic mkdir -p src/main/java src/main/resources
Kopieren Sie die Datei
service_account_key.json
, die Sie in Schritt 1 heruntergeladen haben, in das Verzeichnissrc/main/resources/
, das Sie oben erstellt haben.Öffnen Sie die Standarddatei
build.gradle
und ersetzen Sie ihren Inhalt durch die folgenden Code: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:+' }
Schritt 4: Beispiel einrichten
Erstellen Sie eine Datei mit dem Namen src/main/java/ResellerQuickstart.java
und kopieren Sie sie in den
folgenden Code ausführen und die Datei speichern. Eigenen Reseller-Partner einfügen
ID als Wert für PARTNER_ID
(die erste Zeile der App) ein.
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"); } } }
Partner-ID
Für API-Aufrufe ist in der Regel Ihre Reseller-Partner-ID als Argument erforderlich. So finden Sie Ihr Partner-ID aus dem Portal für die Zero-Touch-Registrierung erhalten Sie folgendermaßen:
- Öffnen Sie das Portal. Eventuell musst du dich anmelden.
- Klicken Sie auf Dienstkonten.
- Kopieren Sie Ihre Partner-ID aus der Zeile Meine Reseller-ID.
Schritt 5: Beispiel ausführen
Lesen Sie in der Hilfe Ihres Betriebssystems nach, wie Sie das Script in der Datei ausführen. Führen Sie auf UNIX- und Mac-Computern den folgenden Befehl im Terminal aus:
gradle -q run
Fehlerbehebung
Teilen Sie uns mit, was bei der Kurzanleitung schiefgelaufen ist. Wir werden dann daran arbeiten, und das Problem zu beheben. Weitere Informationen dazu, wie Zero-Touch Dienstkonten zum Autorisieren von API-Aufrufen verwendet, finden Sie unter Autorisierung.