سپتامبر 2007
- مقدمه
- نصب Dependencies
- نصب کتابخانه Google Data Client
- نمونه های در حال اجرا
- ساخت برنامه های کاربردی خودتان
- نتیجه گیری
- ضمیمه: تنظیم متغیرهای محیط
شروع توسعه با یک API ناآشنا هرگز آسان نیست، بنابراین این مقاله دستورالعمل های گام به گام در مورد نحوه دانلود و نصب Google Data APIs ("GData") Java Client Library دارد. من تمام وابستگی ها و تنظیم متغیرهای محیطی مورد نیاز را بررسی می کنم. در کمترین زمان ممکن خدمات مختلف GData را با هم ترکیب خواهید کرد!
مقاله Coding in the Shade: Using Eclipse with Google Data APIs را بررسی کنید.
کتابخانه 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 .
- از http://code.google.com/p/gdata-java-client/downloads/list دیدن کنید
- آخرین نسخه کتابخانه سرویس گیرنده (
gdata-src.java-1.xxjava.zip) و نمونه ها (gdata-samples.java-1.xxjava.zip) را دانلود کنید. - منبع کتابخانه مشتری را در رایانه خود استخراج کنید.
- به
gdata/java/build-src/build.propertiesبروید و فایل را باز کنید. - وابستگی های خارجی را ویرایش کنید تا به مکان فایل های
.jarدر دستگاه محلی خود اشاره کنید.
توجه: در ویندوز، حتما از بک اسلش ها فرار کنید. به عنوان مثال،
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("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 منبع تنظیم می شود. در این حالت، اینجاست که می توانید لیست تمام تقویم ها را از کاربر تأیید شده درخواست کنید.
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/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());
}در حین اشکال زدایی، عملیات مفید دیگری حذف XML خام است. یک ابزار مفید وجود دارد که می توانید برای انجام این کار در کتابخانه از آن استفاده کنید. مطمئن شوید که samples.util.* وارد شده است. سپس، خوراک یا ورودی را تخلیه کنید.
CommonUtils.dump(resultFeed, System.out);
برای ابزارهای اشکالزدایی حتی عمیقتر، سرویسگیرندگان API دادههای Google Debugging ما را بررسی کنید: مقاله کاوش ترافیک از درون برنامه خود در مورد نحوه فعال کردن ورود به سیستم از داخل کتابخانه سرویس گیرنده.
این باید به شما این احساس را بدهد که ساخت اپلیکیشن با استفاده از کتابخانه مشتری چگونه است. برای اطلاعات بیشتر، به بخش نتیجهگیری برای فهرستی از راهنماهای توسعهدهنده موجود برای هر Google Data API مراجعه کنید.
امیدواریم اکنون بتوانید با استفاده از GData Java Client Library برنامه هایی بسازید و اجرا کنید! من وارد هیچ یک از IDE های محبوبی که می توانید استفاده کنید نرفتم، اما ممکن است بخواهید ابزارهای محبوبی مانند Eclipse یا NetBeans را بررسی کنید. در اینجا چند پیوند اضافی وجود دارد که ممکن است مفید باشد:
- صفحه اصلی کتابخانه سرویس گیرنده جاوا GData
- فهرست Google Data API
- راهنمای برنامهنویس جاوا برای APIهای Google Data زیر موجود است:
- کدنویسی در سایه: استفاده از Eclipse با Google Data API
- Google Data APIs Java Client Eclipse Plug-in
اگر در مورد استفاده از Java Client Library با هر API سؤالی دارید، میتوانید با ارسال پست در انجمنهای ویژه API به ما اطلاع دهید.