شروع به کار با Google Data Java Client Library

استفانی لیو، تیم Google Data APIs
سپتامبر 2007
  1. معرفی
  2. نصب Dependencies
    1. در ویندوز
    2. در Mac OS X
    3. در لینوکس
  3. نصب کتابخانه Google Data Client
  4. نمونه های در حال اجرا
  5. ساخت برنامه های کاربردی خودتان
  6. نتیجه
  7. ضمیمه: تنظیم متغیرهای محیط

معرفی

شروع توسعه با یک API ناآشنا هرگز آسان نیست، بنابراین این مقاله دستورالعمل های گام به گام در مورد نحوه دانلود و نصب Google Data APIs ("GData") Java Client Library دارد. من تمام وابستگی ها و تنظیم متغیرهای محیطی مورد نیاز را بررسی می کنم. در کمترین زمان ممکن خدمات مختلف GData را با هم ترکیب خواهید کرد!

از Eclipse استفاده می کنید؟

مقاله Coding in the Shade: Using Eclipse with Google Data APIs را بررسی کنید.

نصب Dependencies

کتابخانه GData Java Client وابستگی های خارجی زیر را دارد. بخش های زیر نحوه نصب این وابستگی ها را بر روی سیستم عامل مورد علاقه خود (یا سیستم عاملی که در محل کار با آن گیر کرده اید) توضیح می دهد.

  • JDK (کیت توسعه جاوا) نسخه 1.5+
  • Apache Ant نسخه 1.7+
  • mail.jar در Sun's JavaMail API 1.4+
  • activation.jar در JavaBeansActivationFramework Sun. این فقط برای APIهای رسانه خاص از جمله Document List Data API، Picasa Web Album API و YouTube Data API مورد نیاز است.
  • servlet.jar در Sun's Servlet API نسخه 2.3+. این فقط در صورت اجرای نمونه کد در بسته‌های «sample.authsub» یا «sample.gbase.recipe» مورد نیاز است.

تعدادی از وابستگی‌های .jar فقط برای نمونه‌های خاص مورد نیاز هستند، اما برای جلوگیری از خطاهای ساخت، بهتر است همه چیز را دریافت کنید. برای ادامه سیستم عامل انتخابی خود را انتخاب کنید: Windows ، Mac OS X یا Linux .

نصب کتابخانه Google Data Client

  1. از http://code.google.com/p/gdata-java-client/downloads/list دیدن کنید
  2. آخرین نسخه کتابخانه سرویس گیرنده ( gdata-src.java-1.xxjava.zip ) و نمونه ها ( gdata-samples.java-1.xxjava.zip ) را دانلود کنید.
  3. منبع کتابخانه مشتری را در رایانه خود استخراج کنید.
  4. به gdata/java/build-src/build.properties بروید و فایل را باز کنید.
  5. وابستگی های خارجی را ویرایش کنید تا به مکان فایل های .jar در دستگاه محلی خود اشاره کنید.
  6. توجه: در ویندوز، حتما از بک اسلش ها فرار کنید. مثلا،

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

نمونه های در حال اجرا

همه نمونه‌های موجود در gdata/java/sample از آرشیو gdata-samples.java-1.xxjava.zip قرار دارند. فایل 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 برای نمایش عملکردهای اساسی. اطلاعات دقیق‌تر را می‌توانید در راهنمای توسعه‌دهنده 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 منبع تنظیم می شود. در این حالت، اینجاست که می توانید لیست تمام تقویم ها را از کاربر تأیید شده درخواست کنید.

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

خط زیر دستور واقعی GET روی URL اجرا می کند و فید حاصل را در یک شی مرتب قرار می دهد.

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());
}

در حین اشکال زدایی، عملیات مفید دیگری حذف XML خام است. یک ابزار مفید وجود دارد که می توانید برای انجام این کار در کتابخانه از آن استفاده کنید. مطمئن شوید که samples.util.* وارد شده است. سپس، خوراک یا ورودی را تخلیه کنید.

CommonUtils.dump(resultFeed, System.out);

برای ابزارهای اشکال‌زدایی حتی عمیق‌تر، سرویس‌گیرندگان API داده‌های Google Debugging ما را بررسی کنید: مقاله کاوش ترافیک از درون برنامه خود در مورد نحوه فعال کردن ورود به سیستم از داخل کتابخانه سرویس گیرنده.

این باید به شما این احساس را بدهد که ساخت اپلیکیشن با استفاده از کتابخانه مشتری چگونه است. برای اطلاعات بیشتر، به بخش نتیجه‌گیری برای فهرستی از راهنماهای توسعه‌دهنده موجود برای هر Google Data API مراجعه کنید.

نتیجه

امیدواریم اکنون بتوانید با استفاده از GData Java Client Library برنامه هایی بسازید و اجرا کنید! من وارد هیچ یک از IDE های محبوبی که می توانید استفاده کنید نرفتم، اما ممکن است بخواهید ابزارهای محبوبی مانند Eclipse یا NetBeans را بررسی کنید. در اینجا چند پیوند اضافی وجود دارد که ممکن است مفید باشد:

اگر در مورد استفاده از Java Client Library با هر API سؤالی دارید، می‌توانید با ارسال پست در انجمن‌های ویژه API به ما اطلاع دهید.