Google Data Java Client Library का इस्तेमाल शुरू करना

स्टेफ़नी लियू, Google Data APIs टीम
सितंबर 2007
  1. शुरुआती जानकारी
  2. डिपेंडेंसी इंस्टॉल करना
    1. Windows पर
    2. Mac OS X पर
    3. Linux पर
  3. Google Data Client Library इंस्टॉल करना
  4. चल रहे सैंपल
  5. अपने ऐप्लिकेशन बनाना
  6. निष्कर्ष
  7. अपेंडिक्स: एनवायरमेंट वैरिएबल सेट करना

परिचय

किसी नई एपीआई के साथ डेवलपमेंट शुरू करना कभी भी आसान नहीं होता. इसलिए, इस लेख में Google Data APIs ("GData") की Java क्लाइंट लाइब्रेरी को डाउनलोड और इंस्टॉल करने के बारे में चरण-दर-चरण निर्देश दिए गए हैं. हम सभी डिपेंडेंसी पाने और ज़रूरी एनवायरमेंट वैरिएबल सेट करने की प्रोसेस के बारे में जानेंगे. आपको GData की अलग-अलग सेवाओं को एक साथ इस्तेमाल करने में ज़्यादा समय नहीं लगेगा!

क्या Eclipse का इस्तेमाल किया जा रहा है?

Coding in the Shade: Using Eclipse with Google Data APIs लेख पढ़ें.

डिपेंडेंसी इंस्टॉल करना

GData Java Client Library की ये बाहरी डिपेंडेंसी हैं. यहां दिए गए सेक्शन में, इन डिपेंडेंसी को अपने पसंदीदा ऑपरेटिंग सिस्टम (या काम के लिए इस्तेमाल किए जा रहे ओएस) पर इंस्टॉल करने का तरीका बताया गया है.

  • JDK (Java Development Kit) का वर्शन 1.5 या इसके बाद का वर्शन
  • Apache Ant का वर्शन 1.7 या इसके बाद का वर्शन
  • Sun के JavaMail API 1.4+ में mail.jar
  • Sun के JavaBeansActivationFramework में activation.jar. यह सिर्फ़ मीडिया से जुड़े एपीआई के लिए ज़रूरी है. जैसे, Document List Data API, Picasa Web Album API, और YouTube Data API.
  • Sun के Servlet API के वर्शन 2.3+ में servlet.jar. इसकी ज़रूरत सिर्फ़ तब होती है, जब 'sample.authsub' या 'sample.gbase.recipe' पैकेज में कोड सैंपल को एक्ज़ीक्यूट किया जा रहा हो.

.jar की कुछ डिपेंडेंसी सिर्फ़ कुछ सैंपल के लिए ज़रूरी होती हैं. हालांकि, बिल्ड से जुड़ी गड़बड़ियों से बचने के लिए, सभी डिपेंडेंसी को डाउनलोड करना सबसे अच्छा होता है. जारी रखने के लिए, अपना पसंदीदा ऑपरेटिंग सिस्टम चुनें: Windows, Mac OS X या Linux.

Google Data Client Library इंस्टॉल करना

  1. http://code.google.com/p/gdata-java-client/downloads/list पर जाएं
  2. क्लाइंट लाइब्रेरी (gdata-src.java-1.x.x.java.zip) और सैंपल (gdata-samples.java-1.x.x.java.zip) का नया वर्शन डाउनलोड करें.
  3. क्लाइंट लाइब्रेरी के सोर्स को अपने कंप्यूटर पर एक्सट्रैक्ट करें.
  4. gdata/java/build-src/build.properties पर जाएं और फ़ाइल खोलें.
  5. बाहरी डिपेंडेंसी में बदलाव करके, उन्हें अपने कंप्यूटर पर मौजूद .jar फ़ाइलों की लोकेशन पर ले जाएं.
  6. ध्यान दें: Windows पर, बैकस्लैश को एस्केप करना न भूलें. उदाहरण के लिए,

    servlet.jar=C:\\Program Files\\Apache Software Foundation\\Tomcat 6.0\\lib\\servlet-api.jar

सैंपल चलाना

उपलब्ध सभी सैंपल, gdata-samples.java-1.x.x.java.zip संग्रह में मौजूद gdata/java/sample में जाकर देखे जा सकते हैं. gdata/java/build-samples/build.properties फ़ाइल में, लाइब्रेरी में मौजूद सैंपल के लिए सभी इनपुट वैल्यू होती हैं. sample.credentials.username और sample.credentials.password को मान्य उपयोगकर्ता नाम और पासवर्ड पर सेट करें. हम सैंपल बनाने और उन्हें चलाने के लिए, Ant का इस्तेमाल कर सकते हैं.

यह देखने के लिए कि आपने सब कुछ सही तरीके से इंस्टॉल किया है या नहीं, कमांड प्रॉम्प्ट खोलें. इसके बाद, gdata/java डायरेक्ट्री पर जाएं और यह टाइप करें:

ant -f build-samples.xml sample.calendar.run

आपको कुछ जानकारी या चेतावनी वाले मैसेज मिल सकते हैं. हालांकि, आखिर में BUILD SUCCESSFUL वाला मैसेज देखें! अगर आपको पुष्टि करने का मैसेज नहीं मिलता है, तो समस्या हल करने से जुड़ा सेक्शन देखें.

ज़्यादा इंटरैक्टिव सैंपल आज़माने के लिए, यह टाइप करें:

ant -f build-samples.xml sample.spreadsheet.guidemo.run

किसी सैंपल को चलाने का तरीका जानने के लिए, gdata/java/build-samples पर जाएं और उस सैंपल के लिए बिल्ड फ़ाइल देखें. samples run सेक्शन देखें.

समस्या का हल

अगर आपको इस तरह का गड़बड़ी वाला मैसेज मिलता है,

BUILD FAILED
Target 'core.sample.core.util.build' does not exist in this project. It is used from target 'sample.calendar.build'.

Total time: 0 seconds

या अगर आपको प्रोजेक्ट से ज़रूरी फ़ाइल के गायब होने के बारे में ऐसा ही कोई गड़बड़ी का मैसेज मिलता है, तो हो सकता है कि आपके पास Ant का पुराना वर्शन हो. ant -version टाइप करके देखें कि आपके पास 1.7 या इसके बाद का वर्शन है या नहीं. Ant का नया वर्शन पाने के लिए, ऊपर दिए गए डिपेंडेंसी से जुड़े निर्देशों को पढ़ें.

अपने ऐप्लिकेशन बनाना

अगला सवाल यह है कि अपना ऐप्लिकेशन कैसे बनाया जाए. मैं Calendar सेवा का इस्तेमाल करके, "Hello, World!" के बराबर का प्रोग्राम बनाऊंगा, ताकि बुनियादी फ़ंक्शन के बारे में बताया जा सके. ज़्यादा जानकारी के लिए, Java Client Library की डेवलपर गाइड और अलग-अलग प्रॉडक्ट की डेवलपर गाइड देखें.

CalendarTest.java नाम की एक फ़ाइल बनाएं. इन्हें इंपोर्ट करने के लिए, यहां दिए गए स्टेटमेंट शामिल करें.

import com.google.gdata.client.*;
import com.google.gdata.client.calendar.*;
import com.google.gdata.data.*;
import com.google.gdata.data.acl.*;
import com.google.gdata.data.calendar.*;
import com.google.gdata.data.extensions.*;
import com.google.gdata.util.*;

import java.net.*;
import java.io.*;

import sample.util.*;

यहां पूरा प्रोग्राम दिया गया है (इसमें किसी भी तरह की गड़बड़ी को ठीक करने का तरीका शामिल नहीं है).

public class CalendarTest {

    public static void main(String[] args) {
        CalendarService myService = new CalendarService("exampleCo-exampleApp-1.0");
        myService.setUserCredentials("[email protected]", "pa$$word");

        URL feedUrl = new URL("http://www.google.com/calendar/feeds/default/allcalendars/full");
        CalendarFeed resultFeed = myService.getFeed(feedUrl, CalendarFeed.class);

        System.out.println("Your calendars:");
        System.out.println();

        for (int i = 0; i < resultFeed.getEntries().size(); i++) {
          CalendarEntry entry = resultFeed.getEntries().get(i);
          System.out.println("\t" + entry.getTitle().getPlainText());
        }

    }
}

This little program will request all the calendars you own and display all the titles. It's a little longer than the canonical "Hello, World!" example, but it's very simple once we break it down. The first couple of lines creates a service object and sets the user credentials.

CalendarService myService = new CalendarService("exampleCo-exampleApp-1.0");
myService.setUserCredentials("[email protected]", "pa$$word");

इसके बाद, संसाधन का यूआरएल सेट हो जाता है. इस मामले में, पुष्टि किए गए उपयोगकर्ता से सभी कैलेंडर की सूची का अनुरोध यहां किया जा सकता है.

URL feedUrl = new URL("http://www.google.com/calendar/feeds/default/allcalendars/full");

नीचे दी गई लाइन, यूआरएल पर GET कमांड को लागू करेगी और नतीजे के तौर पर मिले फ़ीड को एक ऑब्जेक्ट में रखेगी.

CalendarFeed resultFeed = myService.getFeed(feedUrl, CalendarFeed.class);

नीचे दिया गया for लूप, हर एंट्री को दोहराएगा और टाइटल प्रिंट करेगा. ध्यान दें कि टाइटल को TextConstruct के तौर पर सेव किया जाता है. इसलिए, सादा टेक्स्ट पाने के लिए एक और फ़ंक्शन कॉल की ज़रूरत होती है.

for (int i = 0; i < resultFeed.getEntries().size(); i++) {
    CalendarEntry entry = resultFeed.getEntries().get(i);
    System.out.println("\t" + entry.getTitle().getPlainText());
}

यह बहुत बुनियादी जानकारी थी. चलिए, कुछ और सामान्य चीज़ों के बारे में जानते हैं. यहां दिए गए स्निपेट में, ऑब्जेक्ट बनाने और उसे डालने का तरीका बताया गया है. हमारे उदाहरण के लिए, यह एक नई कैलेंडर इवेंट एंट्री होगी.

URL postURL = new URL("http://www.google.com/calendar/feeds/[email protected]/private/full");
CalendarEventEntry myEvent = new CalendarEventEntry();

//Set the title and description
myEvent.setTitle(new PlainTextConstruct("Pi Day Party"));
myEvent.setContent(new PlainTextConstruct("I am throwing a Pi Day Party!"));

//Create DateTime events and create a When object to hold them, then add
//the When event to the event
DateTime startTime = DateTime.parseDateTime("2007-03-14T15:00:00-08:00");
DateTime endTime = DateTime.parseDateTime("2007-03-14T17:00:00-08:00");
When eventTimes = new When();
eventTimes.setStartTime(startTime);
eventTimes.setEndTime(endTime);
myEvent.addTime(eventTimes);

// POST the request and receive the response:
CalendarEventEntry insertedEntry = myService.insert(postURL, myEvent);

क्वेरी बनाना एक और सामान्य कार्रवाई है.

//Create a new query object and set the parameters
Query myQuery = new Query(feedURL);
myQuery.setFullTextQuery("Pi");

//Send the request with the built query URL
CalendarEventFeed myResultsFeed = myService.query(myQuery, CalendarEventFeed.class);

//Take the first match and print the title
if (myResultsFeed.getEntries().size() > 0) {
    CalendarEventEntry firstMatchEntry = new CalendarEventEntry();
    myResultsFeed.getEntries().get(0);
    System.out.println(firstMatchEntry.getTitle().getPlainText());
}

डीबग करते समय, एक और काम की कार्रवाई रॉ एक्सएमएल को डंप करना है. लाइब्रेरी में इस काम को करने के लिए, एक काम का टूल उपलब्ध है. पक्का करें कि samples.util.* इंपोर्ट किया गया हो. इसके बाद, फ़ीड या एंट्री को डंप करें.

CommonUtils.dump(resultFeed, System.out);

डीबग करने वाले ज़्यादा टूल के लिए, हमारा यह लेख पढ़ें: Google Data API क्लाइंट को डीबग करना: अपने प्रोग्राम से ट्रैफ़िक एक्सप्लोर करना. इसमें क्लाइंट लाइब्रेरी से लॉगिंग चालू करने का तरीका बताया गया है.

इससे आपको यह समझने में मदद मिलेगी कि क्लाइंट लाइब्रेरी का इस्तेमाल करके ऐप्लिकेशन कैसे बनाए जाते हैं. ज़्यादा जानकारी के लिए, हर Google Data API के लिए उपलब्ध डेवलपर गाइड की सूची के लिए, निष्कर्ष सेक्शन देखें.

नतीजा

हमें उम्मीद है कि अब GData Java Client Library का इस्तेमाल करके, ऐप्लिकेशन बनाए और चलाए जा सकते हैं! मैंने ऐसे किसी भी लोकप्रिय आईडीई के बारे में नहीं बताया है जिसका इस्तेमाल किया जा सकता है. हालाँकि, आपके पास Eclipse या NetBeans जैसे लोकप्रिय टूल इस्तेमाल करने का विकल्प है. यहां कुछ अन्य लिंक दिए गए हैं, जो आपके काम आ सकते हैं:

अगर आपको किसी एपीआई के साथ Java क्लाइंट लाइब्रेरी का इस्तेमाल करने के बारे में कोई सवाल पूछना है, तो एपीआई से जुड़े फ़ोरम में पोस्ट करके हमें बताएं.