6

Клиент для Blogger-своими руками

Знаю, знаю... Мне счас скажут: "на хрен нужно, скачай тут или там-то и пользуйся".
Первый коммент имхо, должен быть об этом :) Сразу хочу ответить, что никого не заставляю
писать такой клиент своими руками, особенно кому это не интересно.
Я хочу его написать, потому что:
1) я люблю писать программы.
2) мне писать программы интересно.
3) см. пункт первый.
Начать нужно пожалуй с того, почему я на это решился. При хождении по справке Блоггера я натыкался на ссылки "для разработчиков" (счас уж точно не помню). Да и сам предполагал, что какая-то поддержка подобного рода должна быть. После 2-х минутных поисков попал на страничку
Client Libraries and Sample Code, где предлагалась поддержка для различных языков.

К моему сожалению, либы для C++ не оказалось (видимо, для ее создания необходимо слишком много работы "ручками"). Выбрал Java (пока что в упор не хочу замечать .NET - слишком тяжелый у этого farmework-а дистрибутив, а так же из религиозных соображений :))) )
Фразочка на этой страничке: "For each language, the client library provides tools
and an abstraction layer, letting you construct queries and use response data
without having to create HTTP requests or process HTTP responses by hand." -
ввергла меня в состояние легкой эйфории - супер, если это правда, то решить
поставленную задачу будет довольно легко.
Итак, идем на Getting Started Guide. и смотрим, чего нам нужно качать. Насколько я понял, далеко не все из этого будет использоваться для blogger-клиента. Похоже, что пакет, который Google предлагает разработчикам (Google data API), обладает гораздо большими возможностями, и кроме blogger-клиента можно много всего понаделать, не мешал бы только геморрой и вредные привычки :)))
Сначала там предлагают качнуть JDK, но если мы пишем на Java, то оно ужо должно у нас быть (на всяк случай - посмотрите, добавлен ли у вас в Path путь к java-компилятору. Если нет - обязательно добавьте). Потом треба качнуть Apache Ant версии не ниже 1.7.
Если этот зверь уже есть- энто хорошо, а то весит он аж 11 МБ. Странный зверь,
в данном случае он нужен только для сборки библиотеки - то есть по сути, используется
как make. Люди добрые, расскажите мне плиз, чего он еще хорошего делает
(просто хочется знать, неужто я скачал всего лишь аналог make весом в 11 МБ?)...
Я просто скачал архив, распаковал его в папку D:\Ant (можно в любую другую, но
_весьма желательно_, чтобы имена всех папок в пути соответствовали формату 8.3).
Чтобы зверь Ant заработал и не гавкал, надо установить переменные окружения ANT_HOME
(в моем случае она будет иметь значение D:\Ant) и JAVA_HOME (в моем случае D:\jdk5).
И в этих переменных также нежелательны длинные имена папок, а уж тем более всякие
двойные кавычки. Потом качаем JavaMail API и JavaBeans Activation Framework.
Кроме этого, будет нужна библиотека servlet-api.jar. Она входит в состав сервлет контейнеров J2EE, Tomcat, WebLogic и т.п. Я скачал отсюда zip-архив Tomcat и выдернул оттуда соответствующий файл.
Теперь можно приступать к установке самого Google Data API. Заходим сюда и скачиваем последнюю версию библиотеки в исходниках - файлы gdata-src.java-1.x.x.java.zip и gdata-samples.java-1.x.x.java.zip. Распаковываем все это в одну папочку, после чего ищем файл gdata/java/build-src/build.properties . Изначально выглядит он следующим образом:

# Points to a external library dependancies
# EDIT-THIS: If rebuilding the authsub or gbase/recipe sample point to,
# servlet jar in Sun's Servlet API library.
servlet.jar=/tmp/gdata_dep/servlet-api-2.4.jar
# EDIT-THIS: Point to mail.jar lib in Sun's Java Mail API.
mail.jar=/tmp/gdata_dep/mail.jar
# EDIT-THIS: If using version older than JDK 1.6,
# Point to activation.jar in Sun's activation framework library.
activation.jar=/tmp/gdata_dep/activation.jar

# Include debugging information in built library files. Possible values "on" or "off"
javac.debug=true
javac.debuglevel=lines,vars,source

Насколько я понял, в этом файле нужно указать правильные пути к используемым библиотекам. Причем если работаешь под виндой, то в путях нужно писать двойной бэкслэш. У меня после редактирования этот файл стал таким:

# Points to a external library dependancies
# EDIT-THIS: If rebuilding the authsub or gbase/recipe sample point to,
# servlet jar in Sun's Servlet API library.
servlet.jar=c:\\Java\\libs\\servlet\\servlet-api.jar
# EDIT-THIS: Point to mail.jar lib in Sun's Java Mail API.
mail.jar=c:\\Java\\libs\\javamail-1.4.1\\mail.jar
# EDIT-THIS: If using version older than JDK 1.6,
# Point to activation.jar in Sun's activation framework library.
activation.jar=c:\\Java\\libs\\jaf-1.1.1\\activation.jar

# Include debugging information in built library files. Possible values "on" or "off"
javac.debug=true
javac.debuglevel=lines,vars,source

Почти все, остался последний штрих - для того, чтобы примеры работали, нужно отредактировать
файл gdata/java/build-samples/build.properties: sample.credentials.username и sample.credentials.password нужно присвоить правильные значения вместо тех, что стоят по умолчанию. Теперь можно запускать компиляцию примеров.
Как и сказано в руководстве по инсталляции, я зашел в директорию gdata\java и запустил сначала компиляцию примера для календаря:

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

Ничего примечательного не произошло, все откомпилилось и только. Но хотелось чего-то более существенного. В примерах нашлась простенькая программка-клиент для блоггера. Пробуем:

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

Из вывода программы следовало, что она должна была автоматически создать пост и добавить туда коммент, после чего коммент и пост удалялись. Так оно и оказалось на самом деле - после нескольких запусков моя почта оказалась завалена уведомлениями о комментариях :)

6 коммент.:

Kyle and Svet Keeton комментирует...

Очень интересно!

Продолжайте, пожалуйста... и главное нам всем рассказывайте!

Удачи!

Света и Кайл

Lotrex комментирует...

Kyle and Svet Keeton, спасибо за коммент! Теперь у меня есть еще одна причина не откладывать это дело в долгий ящик :)))
Я постараюсь держать всех наших читателей в курсе того, как идет моя работа над клиентом.

a13x4ndr комментирует...

А по какой лицензии будет ваша разработка распространяться? Надеюсь по открытой?

Lotrex комментирует...

Да, если все получится, то конечно, сама программа будет бесплатной. Планирую основные идеи и часть исходного текста выкладывать тут, так что прога будет частично "open source".

a13x4ndr комментирует...

Держите нас в курсе!

TRiX комментирует...

новости ит-технологий
ТОЛЬКО У НАС КАЖДОДНЕВНОЕ ОБНОВЛЕНИЕ
http://it-pronews.blogspot.com

Отправить комментарий