شروع سریع Java برای توزیع‌کنندگان

مراحل این راهنمای شروع سریع را دنبال کنید و در حدود ۱۰ دقیقه یک برنامه خط فرمان ساده Java خواهید داشت که درخواست‌هایی به میانای برنامه‌سازی کاربردی فروشنده ثبت‌نام تمام خودکار ارسال می‌کند.

پیش‌نیازها

برای اجرای این شروع سریع، به موارد زیر نیاز دارید:

  • حساب Google که عضو حساب فروشنده ثبت‌نام تمام خودکار شما باشد. اگر هنوز آماده‌سازی نشده‌اید، مراحل شروع به کار را در راهنمای درگاه فروشنده دنبال کنید.
  • Java نسخه ۱.۷ یا بالاتر.
  • Gradle نسخه ۲.۳ یا بالاتر.
  • دسترسی به اینترنت و مرورگر وب.

مرحله ۱: روشن کردن 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. روی پیوند دادن حساب سرویس کلیک کنید تا از حساب سرویس با حساب ثبت‌نام تمام خودکار خودتان استفاده کنید.

مرحله ۳: آماده کردن پروژه

برای راه‌اندازی پروژه Gradle، مراحل زیر را دنبال کنید:

  1. فرمان زیر را اجرا کنید تا پروژه جدیدی در دایرکتوری کاری ایجاد شود:

    gradle init --type basic
    mkdir -p src/main/java src/main/resources
    
  2. فایل service_account_key.json را که در مرحله ۱ بارگیری کردید در دایرکتوری 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:+'
    }
    

مرحله ۴: راه‌اندازی نمونه

فایلی با نام 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 enrollment
 * 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");
    }
  }
}

شناسه شریک

فراخوانی‌های میانای برنامه‌سازی کاربردی معمولاً به شناسه شریک توزیع‌کننده شما به‌عنوان آرگومان نیاز دارند. برای پیدا کردن شناسه شریک از پرتال ثبت‌نام تمام خودکار، مراحل زیر را دنبال کنید:

  1. درگاه را باز کنید. شاید لازم باشد به سیستم وارد شوید.
  2. روی حساب‌های سرویس کلیک کنید.
  3. شماره شناسه شریکتان را از خط شناسه توزیع‌کننده شما کپی کنید.

مرحله ۵: اجرای نمونه

برای اجرای دستورگان در فایل، از راهنمای سیستم‌عاملتان استفاده کنید. در رایانه‌های UNIX و Mac، فرمان زیر را در پایانه اجرا کنید:

gradle -q run

عیب‌یابی

به ما بگویید چه مشکلی در شروع سریع وجود داشت تا برای رفع آن تلاش کنیم. برای آشنایی با نحوه استفاده zero-touch از حساب‌های سرویس برای مجاز کردن فراخوانی‌های API، مجاز کردن را بخوانید.

بیشتر بدانید