Guide de démarrage rapide de Java pour les clients utilisant un compte de service
Restez organisé à l'aide des collections
Enregistrez et classez les contenus selon vos préférences.
Suivez les étapes de ce guide de démarrage rapide. En 10 minutes environ, vous aurez
une application de ligne de commande Java simple qui envoie des requêtes au
l'API d'enregistrement du client à l'aide d'un compte de service.
Prérequis
Pour exécuter ce guide de démarrage rapide, vous avez besoin des éléments suivants :
Un compte de service associé à votre compte client d'enregistrement sans contact. Consultez Premiers pas.
Étape 1 : Activez l'API d'inscription sans contact
Utilisez cet assistant pour créer ou sélectionner un projet dans la Google Developers Console et activer automatiquement l'API. Cliquez sur Continue (Continuer), puis sur Go to credentials (Accéder à Identifiants).
Définissez À quelles données accéderez-vous ? sur Données d'application.
Cliquez sur Suivant. Vous devriez être invité à créer un service
de service.
Attribuez un nom descriptif à Nom du compte de service.
Notez l'ID de compte de service (il ressemble à une adresse e-mail), car vous
de l'utiliser plus tard.
Définissez Rôle sur Comptes de service > Utilisateur du compte de service.
Cliquez sur OK pour terminer la création du compte de service.
Cliquez sur l'adresse e-mail du compte de service créé.
Cliquez sur "Clés".
Cliquez sur **Ajouter une clé**, puis sur **Créer une clé**.
Dans **Type de clé**, sélectionnez **JSON**.
Cliquez sur Créer. La clé privée est alors téléchargée sur votre ordinateur.
Cliquez sur **Fermer**.
Déplacez le fichier vers votre répertoire de travail et renommez-le service_account_key.json.
Étape 2: Préparer le projet
Pour configurer votre projet Gradle, procédez comme suit :
Exécutez la commande suivante pour créer un projet dans le répertoire de travail :
Copiez le fichier service_account_key.json que vous avez téléchargé lorsque vous avez créé votre compte de service dans le répertoire src/main/resources/ que vous avez créé ci-dessus.
Ouvrez le fichier build.gradle par défaut et remplacez son contenu par le
code suivant:
Créez un fichier nommé src/main/java/CustomerQuickstart.java, copiez-y le code suivant, puis enregistrez-le.
importcom.google.api.client.googleapis.javanet.GoogleNetHttpTransport;importcom.google.api.client.http.HttpRequestInitializer;importcom.google.api.client.http.HttpTransport;importcom.google.api.client.json.JsonFactory;importcom.google.api.client.json.gson.GsonFactory;importcom.google.api.services.androiddeviceprovisioning.v1.AndroidProvisioningPartner;importcom.google.api.services.androiddeviceprovisioning.v1.model.Company;importcom.google.api.services.androiddeviceprovisioning.v1.model.CustomerListCustomersResponse;importcom.google.api.services.androiddeviceprovisioning.v1.model.CustomerListDpcsResponse;importcom.google.api.services.androiddeviceprovisioning.v1.model.Dpc;importcom.google.auth.http.HttpCredentialsAdapter;importcom.google.auth.oauth2.GoogleCredentials;importcom.google.auth.oauth2.ServiceAccountCredentials;importjava.io.IOException;importjava.io.InputStream;importjava.util.Arrays;importjava.util.List;/** This class forms the quickstart introduction to the zero-touch enrollment customer API. */publicclassCustomerQuickstart{// A single auth scope is used for the zero-touch enrollment customer API.privatestaticfinalList<String>SCOPES=Arrays.asList("https://www.googleapis.com/auth/androidworkzerotouchemm");privatestaticfinalStringAPP_NAME="Zero-touch Enrollment Java Quickstart";// Global shared instancesprivatestaticfinalJsonFactoryJSON_FACTORY=GsonFactory.getDefaultInstance();privatestaticHttpTransportHTTP_TRANSPORT;static{try{HTTP_TRANSPORT=GoogleNetHttpTransport.newTrustedTransport();}catch(Throwablet){t.printStackTrace();System.exit(1);}}/** * Creates a GoogleCredentials 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 GoogleCredentials object. * @throws IOException */publicstaticGoogleCredentialsauthorize()throwsIOException{// Load service account key.InputStreamin=CustomerQuickstart.class.getResourceAsStream("/service_account_key.json");// Create the credential scoped to the zero-touch enrollment customer APIs.GoogleCredentialscredential=ServiceAccountCredentials.fromStream(in).createScoped(SCOPES);returncredential;}/** * Build and return 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 */publicstaticAndroidProvisioningPartnergetService()throwsIOException{GoogleCredentialscredential=authorize();HttpRequestInitializerrequestInitializer=newHttpCredentialsAdapter(credential);returnnewAndroidProvisioningPartner.Builder(HTTP_TRANSPORT,JSON_FACTORY,requestInitializer).setApplicationName(APP_NAME).build();}/** * Runs the zero-touch enrollment quickstart app. * * @throws IOException */publicstaticvoidmain(String[]args)throwsIOException{// Create a zero-touch enrollment API service endpoint.AndroidProvisioningPartnerservice=getService();// Get the customer's account. Because a customer might have more// than one, limit the results to the first account found.AndroidProvisioningPartner.Customers.ListaccountRequest=service.customers().list();accountRequest.setPageSize(1);CustomerListCustomersResponseaccountResponse=accountRequest.execute();if(accountResponse.getCustomers().isEmpty()){// No accounts found for the user. Confirm the Google Account// that authorizes the request can access the zero-touch portal.System.out.println("No zero-touch enrollment account found.");System.exit(-1);}Companycustomer=accountResponse.getCustomers().get(0);StringcustomerAccount=customer.getName();// Send an API request to list all the DPCs available using the customer account.AndroidProvisioningPartner.Customers.Dpcs.Listrequest=service.customers().dpcs().list(customerAccount);CustomerListDpcsResponseresponse=request.execute();// Print out the details of each DPC.java.util.List<Dpc>dpcs=response.getDpcs();for(DpcdpcApp:dpcs){System.out.format("Name:%s APK:%s\n",dpcApp.getDpcName(),dpcApp.getPackageName());}}}
Étape 4 : Exécuter l'exemple
Utilisez l'aide de votre système d'exploitation pour exécuter le script dans le fichier. Sous UNIX et Mac
sur votre ordinateur, exécutez la commande ci-dessous dans votre terminal:
gradle-qrun
Remarques
Évitez de partager votre fichier service_account_key.json avec qui que ce soit. Veillez à ne pas l'inclure dans les dépôts de code source. Pour en savoir plus sur la gestion des secrets de compte de service, consultez nos conseils.
Sauf indication contraire, le contenu de cette page est régi par une licence Creative Commons Attribution 4.0, et les échantillons de code sont régis par une licence Apache 2.0. Pour en savoir plus, consultez les Règles du site Google Developers. Java est une marque déposée d'Oracle et/ou de ses sociétés affiliées.
Dernière mise à jour le 2025/08/29 (UTC).
[null,null,["Dernière mise à jour le 2025/08/29 (UTC)."],[[["\u003cp\u003eThis quickstart guide helps you create a simple Java command-line application that interacts with the zero-touch enrollment customer API using a service account in approximately 10 minutes.\u003c/p\u003e\n"],["\u003cp\u003eYou will need a service account linked to your zero-touch enrollment customer account, Java 1.7 or greater, Gradle 2.3 or greater, and internet access to complete this process.\u003c/p\u003e\n"],["\u003cp\u003eThe guide involves enabling the zero-touch enrollment API, creating a service account, downloading a JSON key file, preparing a Gradle project, and setting up the Java sample code.\u003c/p\u003e\n"],["\u003cp\u003eThe created Java application will interact with the API by listing all the DPCs available using the customer account, showcasing the API's functionality.\u003c/p\u003e\n"],["\u003cp\u003eAfter completing the quickstart, there are multiple resources for further reading, including the Google Developers Console help documentation, Google APIs Client for Java documentation, and Google APIs Client Javadocs.\u003c/p\u003e\n"]]],["This guide outlines creating a Java command-line application to interact with the zero-touch enrollment customer API. First, enable the API and create a service account, noting its ID and downloading its JSON key. Next, set up a Gradle project, placing the service account key in the resources directory, and configuring the `build.gradle` file. Finally, create the `CustomerQuickstart.java` file, including code that gets account credentials, builds an API service, and requests and displays a list of available DPCs, then run using `gradle -q run`.\n"],null,["# Java quickstart for customers using a service account\n\nFollow the steps in this quickstart guide, and in about 10 minutes you have\na simple Java command-line app that makes requests to the zero-touch\nenrollment customer API using a service account.\n\nPrerequisites\n-------------\n\nTo run this quickstart, you need:\n\n- A service account, that's linked to you zero-touch enrollment customer account. See [Get\n started](/zero-touch/guides/customer/service-accounts).\n- Java 1.7 or greater.\n- [Gradle 2.3 or greater](http://gradle.org/downloads).\n- Access to the internet and a web browser.\n\nStep 1: Turn on the zero-touch enrollment API\n---------------------------------------------\n\n1. Use [this\n wizard](https://console.developers.google.com/start/api?id=androiddeviceprovisioning.googleapis.com) to create or select a project in the Google Developers Console and automatically turn on the API. Click **Continue** , then **Go to credentials**.\n2. Set **What data will you be accessing?** to *Application data*.\n3. Click **Next**. You should be prompted to create a service account.\n4. Give a descriptive name for **Service account name**.\n5. Note the **Service account ID** (it looks like an email address) because you'll use it later.\n6. Set **Role** to *Service Accounts \\\u003e Service Account User*.\n7. Click **Done** to finish creating the service account.\n8. Click the email address for the service account that you created.\n9. Click \\*\\*Keys\\*\\*.\n10. Click \\*\\*Add key\\*\\*, then click \\*\\*Create new key\\*\\*.\n11. For \\*\\*Key type\\*\\*, select \\*\\*JSON\\*\\*.\n12. Click **Create** and the private key downloads to your computer.\n13. Click \\*\\*Close\\*\\*.\n14. Move the file to your working directory and rename it `service_account_key.json`.\n\n| **Warning:** Service account keys can become a security risk if not managed carefully. For advice see [best practices for managing API keys](https://cloud.google.com/iam/docs/best-practices-for-managing-service-account-keys).\n\nStep 2: Prepare the project\n---------------------------\n\nFollow the steps below to set up your Gradle project:\n\n1. Run the following command to create a new project in the working directory:\n\n gradle init --type basic\n mkdir -p src/main/java src/main/resources\n\n2. Copy the `service_account_key.json` you downloaded when you created your\n service account into the `src/main/resources/` directory you created above.\n\n3. Open the default `build.gradle` file and replace its contents with the\n following code:\n\n```carbon\napply plugin: 'java'\napply plugin: 'application'\n\nmainClassName = 'CustomerQuickstart'\nsourceCompatibility = 1.7\ntargetCompatibility = 1.7\nversion = '1.0'\n\nrepositories {\n mavenCentral()\n}\n\ndependencies {\n compile 'com.google.api-client:google-api-client:2.2.0'\n compile 'com.google.apis:google-api-services-androiddeviceprovisioning:v1-rev20230509-2.0.0'\n compile 'com.google.auth:google-auth-library-oauth2-http:1.16.1'\n compile 'com.google.auth:google-auth-library-credentials:1.16.1'\n compile 'com.google.http-client:google-http-client:1.43.1'\n compile 'com.google.oauth-client:google-oauth-client-jetty:1.34.1'\n}\n```\n\nStep 3: Set up the sample\n-------------------------\n\nCreate a file named `src/main/java/CustomerQuickstart.java` and copy in the\nfollowing code and save the file. \n\n```java\nimport com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;\nimport com.google.api.client.http.HttpRequestInitializer;\nimport com.google.api.client.http.HttpTransport;\nimport com.google.api.client.json.JsonFactory;\nimport com.google.api.client.json.gson.GsonFactory;\nimport com.google.api.services.androiddeviceprovisioning.v1.AndroidProvisioningPartner;\nimport com.google.api.services.androiddeviceprovisioning.v1.model.Company;\nimport com.google.api.services.androiddeviceprovisioning.v1.model.CustomerListCustomersResponse;\nimport com.google.api.services.androiddeviceprovisioning.v1.model.CustomerListDpcsResponse;\nimport com.google.api.services.androiddeviceprovisioning.v1.model.Dpc;\nimport com.google.auth.http.HttpCredentialsAdapter;\nimport com.google.auth.oauth2.GoogleCredentials;\nimport com.google.auth.oauth2.ServiceAccountCredentials;\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.util.Arrays;\nimport java.util.List;\n\n/** This class forms the quickstart introduction to the zero-touch enrollment customer API. */\npublic class CustomerQuickstart {\n\n // A single auth scope is used for the zero-touch enrollment customer API.\n private static final List\u003cString\u003e SCOPES =\n Arrays.asList(\"https://www.googleapis.com/auth/androidworkzerotouchemm\");\n private static final String APP_NAME = \"Zero-touch Enrollment Java Quickstart\";\n\n // Global shared instances\n private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();\n private static HttpTransport HTTP_TRANSPORT;\n\n static {\n try {\n HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();\n } catch (Throwable t) {\n t.printStackTrace();\n System.exit(1);\n }\n }\n\n /**\n * Creates a GoogleCredentials object with the correct OAuth2 authorization for the service\n * account that calls the reseller API. The service endpoint invokes this method when setting up a\n * new service instance.\n *\n * @return an authorized GoogleCredentials object.\n * @throws IOException\n */\n public static GoogleCredentials authorize() throws IOException {\n // Load service account key.\n InputStream in = CustomerQuickstart.class.getResourceAsStream(\"/service_account_key.json\");\n\n // Create the credential scoped to the zero-touch enrollment customer APIs.\n GoogleCredentials credential = ServiceAccountCredentials.fromStream(in).createScoped(SCOPES);\n return credential;\n }\n\n /**\n * Build and return an authorized zero-touch enrollment API client service. Use the service\n * endpoint to call the API methods.\n *\n * @return an authorized client service endpoint\n * @throws IOException\n */\n public static AndroidProvisioningPartner getService() throws IOException {\n GoogleCredentials credential = authorize();\n HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(credential);\n return new AndroidProvisioningPartner.Builder(HTTP_TRANSPORT, JSON_FACTORY, requestInitializer)\n .setApplicationName(APP_NAME)\n .build();\n }\n\n /**\n * Runs the zero-touch enrollment quickstart app.\n *\n * @throws IOException\n */\n public static void main(String[] args) throws IOException {\n\n // Create a zero-touch enrollment API service endpoint.\n AndroidProvisioningPartner service = getService();\n\n // Get the customer's account. Because a customer might have more\n // than one, limit the results to the first account found.\n AndroidProvisioningPartner.Customers.List accountRequest = service.customers().list();\n accountRequest.setPageSize(1);\n CustomerListCustomersResponse accountResponse = accountRequest.execute();\n if (accountResponse.getCustomers().isEmpty()) {\n // No accounts found for the user. Confirm the Google Account\n // that authorizes the request can access the zero-touch portal.\n System.out.println(\"No zero-touch enrollment account found.\");\n System.exit(-1);\n }\n Company customer = accountResponse.getCustomers().get(0);\n String customerAccount = customer.getName();\n\n // Send an API request to list all the DPCs available using the customer account.\n AndroidProvisioningPartner.Customers.Dpcs.List request =\n service.customers().dpcs().list(customerAccount);\n CustomerListDpcsResponse response = request.execute();\n\n // Print out the details of each DPC.\n java.util.List\u003cDpc\u003e dpcs = response.getDpcs();\n for (Dpc dpcApp : dpcs) {\n System.out.format(\"Name:%s APK:%s\\n\", dpcApp.getDpcName(), dpcApp.getPackageName());\n }\n }\n}\n```\n\nStep 4: Run the sample\n----------------------\n\nUse your operating system's help to run the script in the file. On UNIX and Mac\ncomputers, run the command below in your terminal: \n\n gradle -q run\n\nNotes\n-----\n\n- Avoid sharing your `service_account_key.json` file with anyone. Be careful not to include it in source code repositories. You can read more advice on [handling service account secrets](https://cloud.google.com/iam/docs/best-practices-for-managing-service-account-keys).\n\nLearn more\n----------\n\n- [Google Developers Console help documentation](/console/help/new)\n- [Google APIs Client for Java documentation](/api-client-library/java)\n- [Google APIs Client Javadocs](/api-client-library/java/google-api-java-client/reference)"]]