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 की सूची पर जाएं.) यहां दिए गए उदाहरण में, Java के लिए Calendar API क्लाइंट लाइब्रेरी का इस्तेमाल करके, Google 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 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 सेवा के साथ काम करने के लिए डिज़ाइन किया गया है: