Java Quickstart สำหรับตัวแทนจำหน่าย

ทำตามขั้นตอนในคู่มือเริ่มต้นใช้งานฉบับย่อนี้ และคุณจะมีแอปบรรทัดคำสั่ง Java ง่ายๆ ที่ส่งคำขอไปยัง Reseller API สำหรับการลงทะเบียนแบบรวมศูนย์ภายในเวลาประมาณ 10 นาที

ข้อกำหนดเบื้องต้น

หากต้องการเรียกใช้การเริ่มต้นใช้งานอย่างรวดเร็วนี้ คุณต้องมีสิ่งต่อไปนี้

  • บัญชี Google ซึ่งเป็นสมาชิกบัญชีตัวแทนจำหน่ายการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม หากยังไม่ได้เริ่มต้นใช้งาน ให้ทำตามขั้นตอนในเริ่มต้นใช้งานในคู่มือพอร์ทัลตัวแทนจำหน่าย
  • Java 1.7 ขึ้นไป
  • Gradle 2.3 ขึ้นไป
  • เข้าถึงอินเทอร์เน็ตและเว็บเบราว์เซอร์

ขั้นตอนที่ 1: เปิด API การตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม

  1. ใช้วิซาร์ดนี้เพื่อสร้างหรือเลือกโปรเจ็กต์ใน Google Developers Console และเปิด API โดยอัตโนมัติ คลิกต่อไป แล้วคลิกไปที่ข้อมูลเข้าสู่ระบบ
  2. ตั้งค่าคุณต้องการเข้าถึงข้อมูลใดเป็นข้อมูลแอปพลิเคชัน
  3. คลิกถัดไป ระบบจะแจ้งให้คุณสร้างบัญชีบริการ
  4. ตั้งชื่อที่สื่อความหมายสำหรับชื่อบัญชีบริการ
  5. จดบันทึกรหัสบัญชีบริการ (มีลักษณะคล้ายอีเมล) เนื่องจากคุณจะต้องใช้รหัสนี้ในภายหลัง
  6. ตั้งค่าบทบาทเป็นบัญชีบริการ > ผู้ใช้บัญชีบริการ
  7. คลิกเสร็จสิ้นเพื่อสร้างบัญชีบริการให้เสร็จสมบูรณ์
  8. คลิกอีเมลของบัญชีบริการที่คุณสร้างขึ้น
  9. คลิก**กุญแจ**
  10. คลิก**เพิ่มคีย์** แล้วคลิก**สร้างคีย์ใหม่**
  11. เลือก **JSON** สำหรับ**ประเภทคีย์**
  12. คลิกสร้าง แล้วดาวน์โหลดคีย์ส่วนตัวลงในคอมพิวเตอร์
  13. คลิก **ปิด**
  14. ย้ายไฟล์ไปยังไดเรกทอรีทํางาน แล้วเปลี่ยนชื่อเป็น service_account_key.json
  1. เปิดพอร์ทัลการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม คุณอาจต้องลงชื่อเข้าใช้
  2. คลิก บัญชีบริการ
  3. คลิก ลิงก์บัญชีบริการ
  4. ตั้งค่าอีเมลเป็นอีเมลของบัญชีบริการที่คุณสร้างขึ้น
  5. คลิกลิงก์บัญชีบริการเพื่อใช้บัญชีบริการกับบัญชีลงทะเบียนการตั้งค่าอุปกรณ์พร้อมใช้

ขั้นตอนที่ 3: เตรียมโปรเจ็กต์

ทำตามขั้นตอนด้านล่างเพื่อตั้งค่าโปรเจ็กต์ Gradle

  1. เรียกใช้คำสั่งต่อไปนี้เพื่อสร้างโปรเจ็กต์ใหม่ในไดเรกทอรีที่ทำงานอยู่

    gradle init --type basic
    mkdir -p src/main/java src/main/resources
    
  2. คัดลอกไฟล์ service_account_key.json ที่ดาวน์โหลดไว้ในขั้นตอนที่ 1 ไปยังไดเรกทอรี src/main/resources/ ที่คุณสร้างขึ้นด้านบน

  3. เปิดไฟล์ build.gradle เริ่มต้นและแทนที่เนื้อหาด้วยโค้ดต่อไปนี้

    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:+'
    }
    

ขั้นตอนที่ 4: ตั้งค่าตัวอย่าง

สร้างไฟล์ชื่อ src/main/java/ResellerQuickstart.java แล้วคัดลอกโค้ดต่อไปนี้ลงในไฟล์ แล้วบันทึกไฟล์ แทรก reseller partner ID ของคุณเองเป็นค่าสำหรับ PARTNER_ID (บรรทัดแรกของแอป)

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");
    }
  }
}

รหัสพาร์ทเนอร์

โดยปกติการเรียก API ต้องใช้รหัสพาร์ทเนอร์ตัวแทนจำหน่ายของคุณเป็นอาร์กิวเมนต์ หากต้องการดูรหัสพาร์ทเนอร์จากพอร์ทัลการตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่ม ให้ทำตามขั้นตอนต่อไปนี้

  1. เปิดพอร์ทัล คุณอาจต้องลงชื่อเข้าใช้
  2. คลิก บัญชีบริการ
  3. คัดลอกหมายเลขรหัสพาร์ทเนอร์จากบรรทัดรหัสตัวแทนจำหน่ายของคุณ

ขั้นตอนที่ 5: เรียกใช้ตัวอย่าง

ใช้ความช่วยเหลือของระบบปฏิบัติการเพื่อเรียกใช้สคริปต์ในไฟล์ ในคอมพิวเตอร์ที่ใช้ UNIX และ Mac ให้เรียกใช้คำสั่งด้านล่างในเทอร์มินัล

gradle -q run

การแก้ปัญหา

บอกเราเกี่ยวกับปัญหาที่เกิดขึ้นกับวิธีเริ่มต้นใช้งานด่วน แล้วเราจะพยายามแก้ไข หากต้องการดูวิธีที่การตั้งค่าอุปกรณ์พร้อมใช้แบบรวมกลุ่มใช้บัญชีบริการเพื่อให้สิทธิ์การเรียก API โปรดอ่านการให้สิทธิ์

ดูข้อมูลเพิ่มเติม