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 क्लाइंट लाइब्रेरी की खास बातें

Java के लिए Google API क्लाइंट लाइब्रेरी की मदद से, Google की सेवा के हिसाब से जनरेट की गई लाइब्रेरी का इस्तेमाल करके, 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 के लिए Google क्लाइंट लाइब्रेरी की Android से जुड़ी हेल्पर क्लास, 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 का इस्तेमाल करने के लिए, अपनी 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 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 सेवा के साथ काम करने के लिए डिज़ाइन किया गया है: