یک برنامه خط فرمان جاوا ایجاد کنید که درخواستهایی را به API ابزارهای مدیریت پست ارسال کند.
آموزشهای سریع، نحوه راهاندازی و اجرای برنامهای که API گوگل ورکاسپیس را فراخوانی میکند، توضیح میدهند. این آموزش سریع از یک رویکرد احراز هویت سادهشده استفاده میکند که برای محیط آزمایشی مناسب است. برای محیط عملیاتی، توصیه میکنیم قبل از انتخاب اعتبارنامههای دسترسی مناسب برای برنامه خود، در مورد احراز هویت و مجوزدهی اطلاعات کسب کنید.
این راهنمای سریع از کتابخانههای کلاینت API پیشنهادی Google Workspace برای مدیریت برخی از جزئیات جریان احراز هویت و مجوز استفاده میکند.
اهداف
- محیط خود را تنظیم کنید.
- نمونه را تنظیم کنید.
- نمونه را اجرا کنید.
پیشنیازها
- جاوا ۱۱ یا بالاتر.
- گریدل ۷.۰ یا بالاتر .
- یک پروژه ابری گوگل .
- یک حساب گوگل که جیمیل آن فعال باشد.
محیط خود را تنظیم کنید
برای تکمیل این شروع سریع، محیط خود را راهاندازی کنید.
فعال کردن API
قبل از استفاده از APIهای گوگل، باید آنها را در یک پروژه گوگل کلود فعال کنید. میتوانید یک یا چند API را در یک پروژه گوگل کلود فعال کنید.در کنسول Google Cloud، رابط برنامهنویسی کاربردی (API) ابزارهای مدیریت پست (Postmaster Tools) را فعال کنید.
صفحه رضایت OAuth را پیکربندی کنید
اگر از یک پروژه جدید Google Cloud برای تکمیل این راهنمای سریع استفاده میکنید، صفحه رضایت OAuth را پیکربندی کنید. اگر قبلاً این مرحله را برای پروژه Cloud خود انجام دادهاید، به بخش بعدی بروید.
- در کنسول گوگل کلود، به Menu > برویدGoogle Auth platform > برندسازی .
- اگر قبلاً تنظیمات را انجام دادهاید Google Auth platformمیتوانید تنظیمات صفحه رضایت OAuth زیر را در Branding ، Audience و Data Access پیکربندی کنید. اگر پیامی با این مضمون مشاهده کردید Google Auth platform هنوز پیکربندی نشده است ، روی شروع کار کلیک کنید:
- در قسمت اطلاعات برنامه ، در قسمت نام برنامه ، نامی برای برنامه وارد کنید.
- در ایمیل پشتیبانی کاربر ، یک آدرس ایمیل پشتیبانی انتخاب کنید که کاربران در صورت داشتن هرگونه سوال در مورد رضایت خود بتوانند با شما تماس بگیرند.
- روی بعدی کلیک کنید.
- در قسمت مخاطبان ، داخلی (Internal) را انتخاب کنید.
- روی بعدی کلیک کنید.
- در قسمت اطلاعات تماس ، یک آدرس ایمیل وارد کنید که از طریق آن بتوانید از هرگونه تغییر در پروژه خود مطلع شوید.
- روی بعدی کلیک کنید.
- در قسمت Finish ، سیاست دادههای کاربر سرویسهای API گوگل را مرور کنید و در صورت موافقت، گزینه «من با سیاستهای دادههای کاربر سرویسهای API گوگل موافقم» را انتخاب کنید.
- روی ادامه کلیک کنید.
- روی ایجاد کلیک کنید.
- فعلاً میتوانید از اضافه کردن محدودهها صرف نظر کنید. در آینده، وقتی برنامهای برای استفاده در خارج از سازمان Google Workspace خود ایجاد میکنید، باید نوع کاربر (User type) را به خارجی (External) تغییر دهید. سپس محدودههای مجوز مورد نیاز برنامه خود را اضافه کنید. برای کسب اطلاعات بیشتر، به راهنمای کامل پیکربندی رضایت OAuth مراجعه کنید.
اعتبارنامهها را برای یک برنامه دسکتاپ تأیید کنید
برای احراز هویت کاربران نهایی و دسترسی به دادههای کاربر در برنامه خود، باید یک یا چند شناسه کلاینت OAuth 2.0 ایجاد کنید. شناسه کلاینت برای شناسایی یک برنامه واحد به سرورهای OAuth گوگل استفاده میشود. اگر برنامه شما روی چندین پلتفرم اجرا میشود، باید برای هر پلتفرم یک شناسه کلاینت جداگانه ایجاد کنید.- در کنسول گوگل کلود، به Menu > برویدGoogle Auth platform > مشتریان .
- روی ایجاد کلاینت کلیک کنید.
- روی نوع برنامه > برنامه دسکتاپ کلیک کنید.
- در فیلد نام ، نامی برای اعتبارنامه تایپ کنید. این نام فقط در کنسول Google Cloud نمایش داده میشود.
- روی ایجاد کلیک کنید.
اعتبارنامهی تازه ایجاد شده در زیر «OAuth 2.0 Client IDs» ظاهر میشود.
- فایل JSON دانلود شده را با نام
credentials.jsonذخیره کنید و آن را به دایرکتوری کاری خود منتقل کنید.
آماده کردن فضای کاری
در دایرکتوری کاری خود، یک ساختار پروژه جدید ایجاد کنید:
gradle init --type basic mkdir -p src/main/java src/main/resourcesدر دایرکتوری
src/main/resources/، فایلcredentials.jsonرا که قبلاً دانلود کردهاید، کپی کنید.فایل پیشفرض
build.gradleرا باز کنید و محتویات آن را با کد زیر جایگزین کنید:apply plugin: 'java' apply plugin: 'application' mainClassName = 'GmailPostmasterToolsQuickstart' sourceCompatibility = 1.8 targetCompatibility = 1.8 version = '1.0' repositories { mavenCentral() } dependencies { implementation 'com.google.api-client:google-api-client:1.23.0' implementation 'com.google.oauth-client:google-oauth-client-jetty:1.23.0' implementation 'com.google.apis:google-api-services-gmailpostmastertools:v1-rev20210528-1.31.0' }
نمونه را تنظیم کنید
در پوشه
src/main/java/، یک فایل جاوا جدید با نامی مطابق با مقدارmainClassNameدر فایلbuild.gradleخود ایجاد کنید.کد زیر را در فایل جاوای جدید خود قرار دهید:
import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.javanet.NetHttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.jackson2.JacksonFactory; import com.google.api.client.util.store.FileDataStoreFactory; import com.google.api.services.gmailpostmastertools.v1beta1.PostmasterTools; import com.google.api.services.gmailpostmastertools.v1beta1.model.*; import java.io.*; import java.security.GeneralSecurityException; import java.util.Collections; import java.util.List; public class PostmasterToolsApiQuickStart { private static final String APPLICATION_NAME = "PostmasterTools API Java Quickstart"; private static final JsonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance(); private static final String TOKENS_DIRECTORY_PATH = "tokens"; /** * Global instance of the scopes required by this quickstart. * If modifying these scopes, delete your previously saved tokens/ folder. */ private static final List<String> SCOPES = Collections.singletonList("https://www.googleapis.com/auth/postmaster.readonly"); private static final String CREDENTIALS_FILE_PATH = "/credentials.json"; /** * Creates an authorized Credential object. * @param HTTP_TRANSPORT The network HTTP Transport. * @return An authorized Credential object. * @throws IOException If the credentials.json file cannot be found. */ private static Credential getCredentials(final NetHttpTransport HTTP_TRANSPORT) throws IOException { // Load client secrets. InputStream in = PostmasterToolsApiQuickStart.class.getResourceAsStream(CREDENTIALS_FILE_PATH); if (in == null) { throw new FileNotFoundException("Resource not found: " + CREDENTIALS_FILE_PATH); } GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(in)); // Build flow and trigger user authorization request. GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( HTTP_TRANSPORT, JSON_FACTORY, clientSecrets, SCOPES) .setDataStoreFactory(new FileDataStoreFactory(new java.io.File(TOKENS_DIRECTORY_PATH))) .setAccessType("offline") .build(); LocalServerReceiver receiver = new LocalServerReceiver.Builder().setPort(8891).build(); return new AuthorizationCodeInstalledApp(flow, receiver).authorize("user"); } public static void main(String... args) throws IOException, GeneralSecurityException { // Build a new authorized API client service. final NetHttpTransport HTTP_TRANSPORT = GoogleNetHttpTransport.newTrustedTransport(); PostmasterTools postmasterTools = new PostmasterTools.Builder(HTTP_TRANSPORT, JSON_FACTORY, getCredentials(HTTP_TRANSPORT)) .setApplicationName(APPLICATION_NAME) .build(); List<Domain> domains = postmasterTools.domains().list().execute().getDomains(); if (domains == null || domains.isEmpty()) { System.out.println("No domains found!"); } else { for (Domain domain : domains) { System.out.println(domain.toPrettyString()); } } } }
نمونه را اجرا کنید
نمونه را اجرا کنید:
gradle run
- اولین باری که نمونه را اجرا میکنید، از شما اجازه دسترسی میخواهد:
- اگر قبلاً وارد حساب گوگل خود نشدهاید، در صورت درخواست وارد شوید. اگر با چندین حساب وارد شدهاید، یک حساب را برای استفاده جهت مجوز انتخاب کنید.
- روی پذیرش کلیک کنید.
برنامه جاوای شما اجرا میشود و API ابزارهای مدیریت پست (Postmaster Tools API) را فراخوانی میکند.
اطلاعات مجوز در سیستم فایل ذخیره میشود، بنابراین دفعه بعد که کد نمونه را اجرا میکنید، از شما درخواست مجوز نمیشود.