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 के तौर पर मार्क की गई सुविधाओं में बदलाव किया जा सकता है. उन्हें किसी भी मेजर रिलीज़ से बदला जा सकता है या हटाया जा सकता है. अगर आपका कोड एक लाइब्रेरी है (यानी, अगर आपके कोड का इस्तेमाल आपके कंट्रोल से बाहर के उपयोगकर्ताओं के CLASSPATH पर किया गया है), तो बीटा सुविधाओं का इस्तेमाल न करें.
इस्तेमाल न की जा सकने वाली नॉन-बीटा सुविधाओं को रिलीज़ के अठारह महीने बाद हटा दिया जाएगा. हालांकि, ऐसा सिर्फ़ तब होगा, जब उनका बहिष्कार किया गया हो. आपको इस अवधि से पहले, इस्तेमाल से जुड़ी गड़बड़ी ठीक करनी होगी. ऐसा न करने पर, किसी भी तरह की गड़बड़ी हो सकती है और यह ज़रूरी नहीं है कि कंपाइलेशन में गड़बड़ी हो.

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

Google API को कॉल करने के लिए, खास तौर पर Google की जनरेट की गई किसी सेवा का इस्तेमाल करके, Java के लिए Google API क्लाइंट लाइब्रेरी का इस्तेमाल किया जा सकता है. (किसी Google API के लिए जनरेट की गई क्लाइंट लाइब्रेरी देखने के लिए, इस्तेमाल किए जा सकने वाले Google API की सूची पर जाएं.) यहां एक उदाहरण दिया गया है, जिसमें Google Calendar API को कॉल करने के लिए, Java के लिए 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");
}
App Engine से जुड़े काम करने वाले खास लोग, पुष्टि किए गए कॉल को एपीआई पर तेज़ी से करते हैं. आपको टोकन के लिए कोड बदलने की चिंता करने की ज़रूरत नहीं है.

उदाहरण के लिए:
 @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'
  }
Google API को इंस्टॉल और सेट अप करने के बारे में ज़्यादा जानकारी के लिए Java के लिए क्लाइंट लाइब्रेरी का इस्तेमाल करने के लिए, डाउनलोड करें सेटअप के निर्देश देखें.
Java के लिए Google API क्लाइंट लाइब्रेरी, इन Java एनवायरमेंट के साथ काम करती है:
  • Java 7 या इससे नया वर्शन, स्टैंडर्ड (SE) और एंटरप्राइज़ (EE).
  • Google App Engine के रूप में होता है.
  • Android 4.4 या उसके बाद का वर्शन — लेकिन अगर आपकी ज़रूरत Google की सेवा के लिए Google Play services की लाइब्रेरी उपलब्ध है, तो इस लाइब्रेरी की जगह उस लाइब्रेरी का इस्तेमाल करें. Google Play लाइब्रेरी से आपको सबसे अच्छी परफ़ॉर्मेंस और अनुभव मिलेगा.
काम नहीं करने वाले: Google Web Toolkit (GWT), Java Mobile (ME), और Java 6 (या उससे पहले के वर्शन).

डिपेंडेंसी

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