Google डेटा Java क्लाइंट लाइब्रेरी के साथ शुरू करना

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

सुविधा के बारे में जानकारी

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

एक्लिप्स का उपयोग कर रहे हैं?

कोडिंग में शेड को कोडिंग करना: Google Data API के साथ Eclipse का इस्तेमाल करना लेख देखें.

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

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

  • JDK (Java डेवलपमेंट किट) वर्शन 1.5+
  • Apache Ant वर्शन 1.7+
  • Sun के JavaMail API 1.4+ में mail.jamer
  • Sun के JavaBeansऐक्टिवेशनफ़्रेमवर्क में active.jam. यह सिर्फ़ मीडिया सूची से जुड़े एपीआई के लिए ज़रूरी है, जिसमें दस्तावेज़ सूची का डेटा एपीआई, Picasa वेब एल्बम एपीआई, और YouTube डेटा एपीआई शामिल हैं.
  • Serlet.Jervet

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

Google डेटा क्लाइंट लाइब्रेरी इंस्टॉल करना

  1. http://code.google.com/p/gdata-java-client/download/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 को एक मान्य उपयोगकर्ता नाम और पासवर्ड पर सेट करें. हम चींटी का इस्तेमाल नमूने बनाने और साथ ही नमूनों को चलाने के लिए कर सकते हैं.

आपने कमांड प्रॉम्प्ट खोलकर और 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 का पुराना वर्शन चला रहे हों. यह पक्का करने के लिए कि 1.7 या इसके बाद का वर्शन चल रहा है, ant -version टाइप करें. Ant.

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

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

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("root@gmail.com", "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("root@gmail.com", "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/root@gmail.com/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 डेटा एपीआई क्लाइंट को डीबग करना: अपने कार्यक्रम में ट्रैफ़िक की खोज करना लेख देखें. इसमें, क्लाइंट लाइब्रेरी से लॉग इन करने की सुविधा को चालू करने का तरीका बताया गया है.

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

नतीजा

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

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