การเริ่มต้นใช้งาน Java อย่างรวดเร็วสำหรับลูกค้าที่ใช้บัญชีบริการ
จัดทุกอย่างให้เป็นระเบียบอยู่เสมอด้วยคอลเล็กชัน
บันทึกและจัดหมวดหมู่เนื้อหาตามค่ากำหนดของคุณ
ทำตามขั้นตอนในคู่มือการเริ่มต้นใช้งานฉบับย่อนี้ และคุณจะมีแอปบรรทัดคำสั่ง Java ง่ายๆ ที่ส่งคำขอไปยัง API ของไคลเอ็นต์สำหรับการลงทะเบียนแบบรวมศูนย์โดยใช้บัญชีบริการในอีกประมาณ 10 นาที
ข้อกำหนดเบื้องต้น
หากต้องการเรียกใช้การเริ่มต้นอย่างรวดเร็วนี้ คุณต้องมีสิ่งต่อไปนี้
- บัญชีบริการที่ลิงก์กับบัญชีการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่มของคุณ
ของคุณได้ ดูที่รับ
แล้ว
- Java 1.7 ขึ้นไป
- Gradle 2.3 ขึ้นไป
- เข้าถึงอินเทอร์เน็ตและเว็บเบราว์เซอร์
ขั้นตอนที่ 1: เปิด API การตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม
- ใช้ this
วิซาร์ดเพื่อสร้างหรือเลือกโปรเจ็กต์ใน Google Developers Console และ
เปิด API โดยอัตโนมัติ คลิกต่อไป แล้วคลิกไปที่ข้อมูลเข้าสู่ระบบ
- ตั้งค่าคุณจะเข้าถึงข้อมูลใดบ้างเป็นข้อมูลแอปพลิเคชัน
- คลิกถัดไป ระบบจะแจ้งให้คุณสร้างบัญชีบริการ
- ตั้งชื่อที่สื่อความหมายสำหรับชื่อบัญชีบริการ
- จดบันทึกรหัสบัญชีบริการ (มีลักษณะคล้ายอีเมล) เนื่องจากคุณจะต้องใช้รหัสนี้ในภายหลัง
- ตั้งค่าบทบาทเป็นบัญชีบริการ > ผู้ใช้บัญชีบริการ
- คลิกเสร็จสิ้นเพื่อสร้างบัญชีบริการให้เสร็จสิ้น
- คลิกอีเมลของบัญชีบริการที่คุณสร้างขึ้น
- คลิก**กุญแจ**
- คลิก**เพิ่มคีย์** แล้วคลิก**สร้างคีย์ใหม่**
- เลือก **JSON** สำหรับ**ประเภทคีย์**
- คลิกสร้าง แล้วคีย์ส่วนตัวจะดาวน์โหลดลงในคอมพิวเตอร์
- คลิก **ปิด**
- ย้ายไฟล์ไปยังไดเรกทอรีที่ใช้งานอยู่และเปลี่ยนชื่อ
service_account_key.json
ขั้นตอนที่ 2: เตรียมโปรเจ็กต์
โปรดทำตามขั้นตอนด้านล่างเพื่อตั้งค่าโปรเจ็กต์ Gradle
เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างโปรเจ็กต์ใหม่ในไดเรกทอรีที่ทำงานอยู่
gradle init --type basic
mkdir -p src/main/java src/main/resources
คัดลอก service_account_key.json
ที่คุณดาวน์โหลดเมื่อสร้าง
บัญชีบริการลงในไดเรกทอรี src/main/resources/
ที่คุณสร้างไว้ข้างต้น
เปิดไฟล์ build.gradle
เริ่มต้น แล้วแทนที่เนื้อหาด้วยโค้ดต่อไปนี้
apply plugin: 'java'
apply plugin: 'application'
mainClassName = 'CustomerQuickstart'
sourceCompatibility = 1.7
targetCompatibility = 1.7
version = '1.0'
repositories {
mavenCentral()
}
dependencies {
compile 'com.google.api-client:google-api-client:2.2.0'
compile 'com.google.apis:google-api-services-androiddeviceprovisioning:v1-rev20230509-2.0.0'
compile 'com.google.auth:google-auth-library-oauth2-http:1.16.1'
compile 'com.google.auth:google-auth-library-credentials:1.16.1'
compile 'com.google.http-client:google-http-client:1.43.1'
compile 'com.google.oauth-client:google-oauth-client-jetty:1.34.1'
}
ขั้นตอนที่ 3: ตั้งค่าตัวอย่าง
สร้างไฟล์ชื่อ src/main/java/CustomerQuickstart.java
แล้วคัดลอกโค้ดต่อไปนี้ลงในไฟล์ แล้วบันทึกไฟล์
import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport;
import com.google.api.client.http.HttpRequestInitializer;
import com.google.api.client.http.HttpTransport;
import com.google.api.client.json.JsonFactory;
import com.google.api.client.json.gson.GsonFactory;
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.CustomerListCustomersResponse;
import com.google.api.services.androiddeviceprovisioning.v1.model.CustomerListDpcsResponse;
import com.google.api.services.androiddeviceprovisioning.v1.model.Dpc;
import com.google.auth.http.HttpCredentialsAdapter;
import com.google.auth.oauth2.GoogleCredentials;
import com.google.auth.oauth2.ServiceAccountCredentials;
import java.io.IOException;
import java.io.InputStream;
import java.util.Arrays;
import java.util.List;
/** This class forms the quickstart introduction to the zero-touch enrollment customer API. */
public class CustomerQuickstart {
// A single auth scope is used for the zero-touch enrollment customer API.
private static final List<String> SCOPES =
Arrays.asList("https://www.googleapis.com/auth/androidworkzerotouchemm");
private static final String APP_NAME = "Zero-touch Enrollment Java Quickstart";
// Global shared instances
private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance();
private static HttpTransport HTTP_TRANSPORT;
static {
try {
HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport();
} catch (Throwable t) {
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
*/
public static GoogleCredentials authorize() throws IOException {
// Load service account key.
InputStream in = CustomerQuickstart.class.getResourceAsStream("/service_account_key.json");
// Create the credential scoped to the zero-touch enrollment customer APIs.
GoogleCredentials credential = ServiceAccountCredentials.fromStream(in).createScoped(SCOPES);
return credential;
}
/**
* 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
*/
public static AndroidProvisioningPartner getService() throws IOException {
GoogleCredentials credential = authorize();
HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(credential);
return new AndroidProvisioningPartner.Builder(HTTP_TRANSPORT, JSON_FACTORY, requestInitializer)
.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();
// Get the customer's account. Because a customer might have more
// than one, limit the results to the first account found.
AndroidProvisioningPartner.Customers.List accountRequest = service.customers().list();
accountRequest.setPageSize(1);
CustomerListCustomersResponse accountResponse = 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);
}
Company customer = accountResponse.getCustomers().get(0);
String customerAccount = customer.getName();
// Send an API request to list all the DPCs available using the customer account.
AndroidProvisioningPartner.Customers.Dpcs.List request =
service.customers().dpcs().list(customerAccount);
CustomerListDpcsResponse response = request.execute();
// Print out the details of each DPC.
java.util.List<Dpc> dpcs = response.getDpcs();
for (Dpc dpcApp : dpcs) {
System.out.format("Name:%s APK:%s\n", dpcApp.getDpcName(), dpcApp.getPackageName());
}
}
}
ขั้นตอนที่ 4: เรียกใช้ตัวอย่าง
ใช้ความช่วยเหลือของระบบปฏิบัติการเพื่อเรียกใช้สคริปต์ในไฟล์ ในคอมพิวเตอร์ที่ใช้ UNIX และ Mac ให้เรียกใช้คำสั่งด้านล่างในเทอร์มินัล
gradle -q run
หมายเหตุ
- หลีกเลี่ยงการแชร์ไฟล์
service_account_key.json
กับผู้อื่น โปรดระมัดระวัง
ไม่ให้รวมไว้ในที่เก็บซอร์สโค้ด อ่านคําแนะนําเพิ่มเติมเกี่ยวกับการจัดการข้อมูลลับของบัญชีบริการ
ดูข้อมูลเพิ่มเติม
เนื้อหาของหน้าเว็บนี้ได้รับอนุญาตภายใต้ใบอนุญาตที่ต้องระบุที่มาของครีเอทีฟคอมมอนส์ 4.0 และตัวอย่างโค้ดได้รับอนุญาตภายใต้ใบอนุญาต Apache 2.0 เว้นแต่จะระบุไว้เป็นอย่างอื่น โปรดดูรายละเอียดที่นโยบายเว็บไซต์ Google Developers Java เป็นเครื่องหมายการค้าจดทะเบียนของ Oracle และ/หรือบริษัทในเครือ
อัปเดตล่าสุด 2025-08-29 UTC
[null,null,["อัปเดตล่าสุด 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)"]]