Java से Google API को आसानी से ऐक्सेस करें

Java के लिए Google API क्लाइंट लाइब्रेरी, सभी Google API के लिए एक जैसी सुविधाएं देती है. इनमें एचटीटीपी ट्रांसपोर्टेशन, गड़बड़ी को मैनेज करना, पुष्टि करना, JSON पार्स करना, मीडिया डाउनलोड/अपलोड करना, और बैच बनाना शामिल है. इस लाइब्रेरी में, OAuth 2.0 लाइब्रेरी की सुविधा का इस्तेमाल किया जा सकता है. इसमें लगातार काम करने वाला इंटरफ़ेस, लाइट, एक्सएमएल, और JSON डेटा मॉडल शामिल हैं. साथ ही, किसी भी डेटा स्कीमा के साथ काम करने की सुविधा और प्रोटोकॉल बफ़र की सुविधा भी काम करती है.

Java के लिए, Google API की मदद से Google API को कॉल करने के लिए, आपको उस Google API के लिए जनरेट की गई Java लाइब्रेरी की ज़रूरत होगी जिसे आप ऐक्सेस कर रहे हैं. इन जनरेट की गई लाइब्रेरी में एपीआई की खास जानकारी, जैसे कि रूट यूआरएल जैसी google-api-java-client लाइब्रेरी होती है. इनमें क्लास शामिल हैं, जो एपीआई के संदर्भ में इकाइयां दिखाती हैं. साथ ही, वे JSON ऑब्जेक्ट और Java ऑब्जेक्ट के बीच कन्वर्ज़न करने के लिए उपयोगी हैं.
क्लास या तरीके के लेवल पर @Beta की मदद से मार्क की गई सुविधाओं में बदलाव हो सकते हैं. इनमें किसी बड़ी रिलीज़ में बदलाव किया जा सकता है या इसे हटाया जा सकता है. अगर आपका कोड एक लाइब्रेरी है, तो बीटा सुविधाओं का इस्तेमाल न करें (उदाहरण के लिए, अगर आपके कोड का इस्तेमाल आपके कंट्रोल से बाहर के क्लासपाथ पर किया जाता है).
जिन गैर-बीटा वर्शन की सुविधाएं बंद कर दी गई हैं उन्हें पहली बार रिलीज़ किए जाने के 18 महीने बाद हटा दिया जाएगा. आपको इस समयसीमा से पहले, अपने इस्तेमाल से जुड़ी समस्याएं ठीक करनी होंगी. अगर आप किसी भी तरह का ब्रेकडाउन करते हैं, तो गारंटी नहीं दी जा सकती है कि आपको कोई गड़बड़ी मिलेगी.

Java के लिए, Google API क्लाइंट लाइब्रेरी की खास बातें

आप Java के लिए, Google API क्लाइंट लाइब्रेरी का इस्तेमाल करके, Google की किसी खास सेवा की जनरेट की गई लाइब्रेरी का इस्तेमाल करके, Google API को कॉल कर सकते हैं. (Google API के लिए जनरेट की गई क्लाइंट लाइब्रेरी देखने के लिए, काम करने वाले Google API की सूची देखें.) यहां एक उदाहरण दिया गया है, जो Google Calendar API पर कॉल करने के लिए, Calendar API क्लाइंट लाइब्रेरी का इस्तेमाल करता है:
 // Show events on user's calendar.
 View.header("Show Calendars");
 CalendarList feed = client.calendarList().list().execute();
 View.display(feed);

लाइब्रेरी से बैच बनाने और मीडिया अपलोड करने/डाउनलोड करने में आसानी होती है

लाइब्रेरी, बैचिंग, मीडिया अपलोड, और मीडिया डाउनलोड की हेल्पर क्लास उपलब्ध कराती है.
इस लाइब्रेरी में बेहतरीन पुष्टि करने वाली लाइब्रेरी शामिल है. इससे, OAuth 2.0 को मैनेज करने के लिए, ज़रूरी कोड को कम किया जा सकता है. कभी-कभी आपको कुछ ही पंक्तियों की ज़रूरत होती है. उदाहरण के लिए:
 /** Authorizes the installed application to access user's protected data. */
 private static Credential authorize() throws Exception {
   // load client secrets
   GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY,
       new InputStreamReader(CalendarSample.class.getResourceAsStream("/client_secrets.json")));
   // set up authorization code flow
   GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder(
       httpTransport, JSON_FACTORY, clientSecrets,
       Collections.singleton(CalendarScopes.CALENDAR)).setDataStoreFactory(dataStoreFactory)
      .build();
   // authorize
   return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user");
}
ऐप्लिकेशन इंजन के लिए खास हेल्पर, पुष्टि किए गए कॉल को एपीआई पर तेज़ी से लागू करते हैं. साथ ही, आपको टोकन की अदला-बदली के लिए कोड की चिंता करने की ज़रूरत नहीं है.

उदाहरण के लिए:
 @Override
 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws IOException {
   AppIdentityCredential credential =
       new AppIdentityCredential(Arrays.asList(UrlshortenerScopes.URLSHORTENER));
   Urlshortener shortener =
       new Urlshortener.Builder(new UrlFetchTransport(), new JacksonFactory(), credential)
       .build();
   UrlHistory history = shortener.URL().list().execute();
   ...
 }
Java की &Android की हेल्पर कक्षाओं के लिए, Google क्लाइंट लाइब्रेरी को Android AccountManager के साथ अच्छी तरह से इंटिग्रेट किया जाता है. उदाहरण के लिए:
 @Override
 public void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   // Google Accounts
   credential =
       GoogleAccountCredential.usingOAuth2(this, Collections.singleton(TasksScopes.TASKS));
   SharedPreferences settings = getPreferences(Context.MODE_PRIVATE);
   credential.setSelectedAccountName(settings.getString(PREF_ACCOUNT_NAME, null));
   // Tasks client
   service =
       new com.google.api.services.tasks.Tasks.Builder(httpTransport, jsonFactory, credential)
           .setApplicationName("Google-TasksAndroidSample/1.0").build();
 }
अगर आप जनरेट की गई लाइब्रेरी का इस्तेमाल नहीं कर रहे हैं, तो आप सीधे डाउनलोड पेज से Java के लिए Google API क्लाइंट लाइब्रेरी का बाइनरी डाउनलोड कर सकते हैं. इसके अलावा, आप Maven या Gradle का इस्तेमाल भी कर सकते हैं. Maven का इस्तेमाल करने के लिए, अपनी pom.xml फ़ाइल में ये लाइनें जोड़ें:
 <project>
  <dependencies>
   <dependency>
     <groupId>com.google.api-client</groupId>
     <artifactId>google-api-client</artifactId>
     <version>1.32.1</version>
   </dependency>
  </dependencies>
 </project>

Gradle का इस्तेमाल करने के लिए, इन लाइनों को अपनी build.gradle फ़ाइल में जोड़ें:
 repositories {
      mavenCentral()
  }
  dependencies {
      compile 'com.google.api-client:google-api-client:1.32.1'
  }
Java के लिए Google API क्लाइंट लाइब्रेरी इंस्टॉल और सेट अप करने के बारे में ज़्यादा जानने के लिए, डाउनलोड और सेट अप करने के निर्देश देखें.
Java के लिए, Google API क्लाइंट लाइब्रेरी इन Java एनवायरमेंट के साथ काम करती है:
  • Java 7 या उसके बाद वाले वर्शन, स्टैंडर्ड (SE) और एंटरप्राइज़ (EE).
  • Google App इंजन.
  • Android 4.4 या उसके बाद वाले वर्शन — लेकिन अगर आपकी ज़रूरत के लिए Google सेवा के लिए Google Play सेवाएं लाइब्रेरी उपलब्ध है, तो उसके बजाय उस लाइब्रेरी का इस्तेमाल करें. Google Play लाइब्रेरी से आपको सबसे अच्छी परफ़ॉर्मेंस और अनुभव मिलेगा.
इन सुविधाओं के साथ काम नहीं करता है: Google Web Toolkit (GWT), Java मोबाइल (ME), और Java 6 (या पहले का वर्शन).

डिपेंडेंसी

Java (google-api-java-client) के लिए Google API क्लाइंट लाइब्रेरी का निर्माण दो सामान्य लाइब्रेरी ने किया है, जिन्हें Google ने भी बनाया है. इसे वेब पर किसी भी HTTP सेवा के साथ काम करने के लिए डिज़ाइन किया गया है: