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

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

สิ่งที่ต้องดำเนินการก่อน

หากต้องการเรียกใช้คู่มือเริ่มต้นฉบับย่อนี้ คุณจะต้องมีสิ่งต่อไปนี้

  • บัญชี 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 และคัดลอกโค้ดต่อไปนี้ แล้วบันทึกไฟล์ แทรกรหัสพาร์ทเนอร์ตัวแทนจําหน่ายของคุณเองเป็นค่าสําหรับ 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

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