Подписка

добавить на Яндекс

Наши проекты

Delphi+Google

Google API

Google API в Delphi - проект с открытым исходным кодом.

Chrono

Chrono

Хронометр - программа для ведения списка задач.

ODFProc

ODFProc

ODFProc - работа с документами OpenOffice в Lazarus и FreePascal.

Поддержка блога

А тут я коплю на лицензию Delphi XE на iPad =).
Сумма пожертвования не фиксирована.

Публикации

Год назад

Случайный пост

Последние

Сообщения форума

Комментарии

Свежие комментарии

Социальные сети

Google

Facebook

Twitter

Опрос

Вы сейчас или в ближайшем обозримом будущем планируете разрабатывать кроссплатформенное приложение с использованием Firemonkey?



Loading ... Loading ...

Блоги и сообщества

Статьи по Delphi DelphiFeeds.ru - Все Delphi-блоги Рунета Сообщество умных людей VR-Online.RU Бесплатный журнал для программистов и всех, кто интересуется IT Статьи и уроки по Delphi Новостной блог о высоких технологиях
Система Orphus
Опубликовал Vlad 16 октября 2011 в 11:08.
Категории: Delphi в Web, Основы Delphi.

Сегодняшняя тема, думаю, будет интересна в первую очередь тем, кто связан с программированием сетевых приложений. Про работу с JSON в Delphi я уже несколько раз рассказывал в блоге и приводил примеры того как можно разбирать различные JSON-объекты. Но во всех примерах я рассматривал работу лишь с одной из библиотек для работы с json в Delphi - SuperObject.

Но не стоит забывать и про то, что в Delphi существуют свои родные механизмы работы с JSON, которые содержатся в трех модулях: DBXJSON.pas, DBXJSONCommon.pas и DBXJSONReflect.pas. В этих трех модулях можно найти достаточно много полезных и интересных классов и методов. Если Вы никогда не слышали об этих модулях, то эта статья как раз для Вас.

Читать далее »

Опубликовал Vlad 21 сентября 2011 в 02:53.
Категории: Delphi в Web.

Неделя прошла, можно сказать, не зря. Одним из главных событий неделю для меня стало то, что все-таки заставил себя залезть в мануалы по Delphi, немного подготовиться и пройти тест в Delphi Certification Program. Экзамен сдал, сертификат получил - осталось распечатать в цвете и повесить на стенку =).

В остальном, что касается Delphi - идей по чести Delphi XE2 громадьё, а времени сейчас практически нет. Но, тем не менее, сегодня у меня вынужденный отдых от работы - заболел. И пока болею решил потратить время с пользой - решить некоторый проблемы по части работы с Google OAuth 2.0., которые частично были указаны в комментариях к одному из постов, посвященных этой теме. Читать далее »

Опубликовал Vlad 9 сентября 2011 в 14:54.
Категории: Delphi в Web.

Вообще, озвученный в теме поста вопрос так или иначе задавался мне в разных ситуациях, разными людьми раз эдак 10 точно =). Чаще всего ответом на вопрос была страничка с документацией по интерфейсу, реже - краткий пересказ той же документации. Единственное, что я никак не мог предоставить - это пример, когда при авторизации ну никак нельзя использовать другие параметры в запросе за исключением HOSTED.

Действительно, для большинства API Google нам вполне достаточно использовать HOSTED_OR_GOOGLE или даже просто GOOGLE в параметрах URL и навскидку дать пример, когда авторизация провалится или не пройдет запрос к ресурсам API даже при верном пароле...скажем так - не просто. Однако буквально на днях я столкнулся именно с такой ситуацией - при уже пройденной авторизации API никак не желал отдать мне сведения по запросу.

Вот я и решил опубликовать небольшую заметку и привести пример, когда имеет смысл использовать параметр HOSTED. Ну, а чтобы ответ был понятен даже самому, что ни есть новичку в работе с Google API в Delphi, я постараюсь дать ответ самым подробнейшим образом.  Читать далее »

Опубликовал Vlad 31 августа 2011 в 07:24.
Категории: Delphi в Web.

В одном из постов в блоге я рассказывал про новый класс в проекте "Google API в Delphi" для авторизации в API по протоколу OAuth 2.0.

По большому счёту модуль для OAuth создавался для того, чтобы использовать его в API, которые не поддерживают ClientLogin (в основном это новые API из Лаборатории). Но после известных событий в самом Google (см. "18 API Google псу под хвост…") этот модуль как-то затерялся, забылся т.к. тратить время над API, которые в любой момент могут быть объявлены несостоявшимися как-то не хотелось. Сегодня я решил снова вернуться к теме использования OAuth в Google и написать небольшой компонент Delphi, которые, наряду с уже имеющимися компонентом GoogleLogin позволит авторизовываться в любых API Google вне зависимости от того находится ли этот API в лаборатории или это стабильная версия, например, как Google Docs API 2.0.

Чтобы не повторяться дважды и не рассказывать об устройстве OAUth 2.0 для проектов гугла, советую Вам прочитать предыдущий пост на эту тему, тем более, что демка для компонента будет таже самая. Читать далее »

Опубликовал Vlad 7 августа 2011 в 01:13.
Категории: Delphi в Web, MSDN.

новогодняя елка В одном из последних постов я рассказывал о том как в Delphi XE можно сформировать дерево каталогов и документов Google для своей программы. Сегодня продолжим немного начатую тему.

Если вы зайдете в свой аккаунт Документов Google и посмотрите на иконки загруженных документов, то заметите, что для каждого документа Google присваивает одну из своих иконок. Если же Google "не понимает" формат документа (например, если Вы загрузите в аккаунт архив rar), то документу присваивается дефолтная иконка. Но Windows-то знает намного больше форматов файлов и, соответственно мы можем сделать дерево документов Google в нашей программе ещё более красивым и удобным. Вот этим мы сегодня и займемся.

Похожий компонент мы когда-то начинали писать с SeregaAltmer'ом, но тема заглохла и до релиза компонент не дожил, поэтому сегодня я постараюсь довести начатое дело до конца и предоставить Вам уже готовый к использованию компонент для отображения иконок документов в дереве. Читать далее »

Опубликовал Vlad 4 августа 2011 в 20:46.
Категории: Delphi в Web.

В последнее время (а это практически месяц) мне пришлось очень плотно работать с библиотекой Indy, в частности с несколькими её компонентами для работы с HTTP-протоколом. Использование другой библиотеки не обсуждался в принципе, т.к. переписывать весь код уже достаточно большого проекта только из-за того, что мне не нравится Indy никто бы и не стал. Да я и не просил. Опыт лишним не бывает.

Поэтому я с головой влез в дебри модулей последней версии Indy и начал активно разрабатывать свою часть проекта. И, кстати, могу сказать, что в большинстве случаев "глючность" Indy решается простым непринужденным выпрямлением рук и чтением мануалов по библиотеке. Indy не идеальная библиотека, есть и проблемы с её работой (с некоторыми встречался, про другие просто слышал), но в целом для выполнения повседневных задач типа отправить/получить запрос по http/https, провести base-аутентификацию и т.д. библиотека вполне подходит. Как знают мои постоянные читатели, несколько раз я упоминал в своем блоге на ряду с прочими компонентами для работы в Сети библиотеку ICS (Internet Component Suite) и даже некоторое время назад переписал модуль для API Twitter с Indy на ICS версий 5 (этого модуля в доступе нет) и 7. То бишь маленький, скромный, но тем не менее опыт использования ICS имеется.
И вот в процессе работы над текущим проектом у меня родилась мысль-идея - написать статью, которая поможет совсем уж неопытным в деле работы с HTTP-протоколом в Delphi программистам разобраться в различиях, преимуществах, особенностях и недостатках двух библиотек - Indy и ICS. Поэтому в этой статье я постараюсь обойтись без "тыканья палкой с гвоздями" в разработчиков библиотек (это незачем) и ограничиться только рассмотрением фактов. Итак начнем. Читать далее »

Опубликовал Vlad 23 июля 2011 в 12:03.
Категории: Delphi в Web.

Итак, пришло время поставить точку в работе с одним из классов библиотеки SynapseTHTTPSend. Большинство постов, касающихся работы с HTTP-протоколом в Delphi связано с использованием этого замечательного класса.

В разное время, в разных ситуациях я освещал в блоге работу с только с одним или несколькими свойствами THTTPSend, избегая при этом рассмотрения работы класса в целом. Но теперь, когда рассмотрены практически все доступные свойства класса, когда приведены необходимые примеры работы, например с теми же proxy или gzip в Synapse, думаю, что не плохо было бы свести всю эту информацию в один большой объединяющий пост. Лишним такая информация явно не будет, тем более, что Вы сможете в любое время сохранить эту статью в pdf и получить небольшой оффлайн-справочник по работе с HTTP в Synapse.

Читать далее »

Опубликовал Vlad 9 июля 2011 в 13:07.
Категории: Delphi в Web.

google_docs

Продолжаю копаться в Google Documents List API. И сегодня на повестке дня – работа с деревом каталогов и документов Google Docs. В силу того, что список документов Google представляет собой ни что иное как хранилище данных GData или, говоря проще, большую базу данных, этот список имеет ряд особенностей в плане расположения и структурирования данных нежели простой каталог с документами на жестком диске компьютера.

В чем принципиальное отличие? Дело в том, что как и в любой базе данных, любую запись в хранилище Google можно однозначно идентифицировать по ключу. В Google Docs ключом может выступать как Resource ID (идентификатор ресурса) так и уникальное значение – ETag. И это обстоятельство дает нам такую редко используемую на практике, но тем не менее возможность, как создание на одном уровне вложенности нескольких документов или папок (коллекций) с одним и тем же названием, что. как известно, невозможно сделать стандартными средствами той же ОС Windows. Например, можно создать вот такую структуру коллекций документов:

Читать далее »

Опубликовал Vlad 7 июля 2011 в 03:35.
Категории: Delphi в Web.

Как быстро пролетела первая неделя отпуска :). Последние три дня так вообще махом потому как довольно плотно “завис” над API Google Docs и обновлениями в блоге. Ну, с обновлениями познакомлю всех немного позже, как только все эти обновы заработают в полную силу, а пока по теме поста.

Итак, сам по себе API Google Docs (он же API списка документов Google) по сложности не отличается от многих других API Google – те же данные в формате XML, те же GET, POST, PUT-запросы, однако серьезные различия есть в объемах перекачиваемых данных. Одно дело, когда мы качаем из Сети XML-файл размером в 200-300 Кб, а другое – когда вместе с этими данными нам надо получить файл или наоборот – забросить в аккаунт файл объемом, скажем, в несколько мегабайт. А если канал слабый? А ну как “заглючит” чего-нибудь в момент аплоада? Подводных камней достаточно и надо их как-то обходить, искать решения. А с последним обновлениям сервиса так вообще все пользователи получили возможность закачивать в аккаунт файлы любых форматов. Благо разработчики API предусмотрели такую замечательную возможность как возобновляемые загрузки (resumable upload). Вот над этой возможностью я и работал последние три дня. Причем пришлось реализовывать работу сразу с двумя библиотеками – Indy и Synapse.

Читать далее »

Опубликовал Vlad 27 июня 2011 в 18:24.
Категории: Delphi в Web.

tgzРаз пошла такая тема, то сегодня речь пойдет про ещё один способ экономии трафика и повышении скорости работы с HTTP при использовании Synapse в Delphi. О том, как сэкономить немного трафика при скачивании web-страничек из Сети я рассказывал, когда рассматривал события сокета в Synapse, но этот способ выгодно применять кода необходимые нам данные находятся как можно ближе к началу страницы – тогда экономия есть и прирост скорости работы тоже наблюдается. Но использование события сокета не дает никакого эффекта, когда надо скачать страницу целиком. И в этом случае на помощь нам приходит использование GZip. При использовании GZip с Synapse мы имеем возможность сэкономить до 75% и более трафика, а соответственно и значительно ускорить работу наших программ для работы с Сетью.

Прежде, чем перейдем к рассмотрению примеров использования GZip в Synapse, рассмотрим несколько общих моментов по использованию сжатия в принципе.

Читать далее »

« Предыдущая страница