
Таким образом, была поставлена задача: экспорт календаря в внешний сервис (в моем случае — Google Calendar). Используется родной API, поэтому все работает быстро и без багов. Кому интересно — прошу под кат.
Итак, были рассмотрены следующие варианты:
Вариант в лоб — написать скрипт, который собирает ответы на AJAX-запросы страницы календаря. В общем, обход проблем с безопасностью, полчаса над Firebug-овскими ответами сервера, создание php-шки — и получился файлик с форматированными HTML-блоками, с которого к тому же надо вычислять год рождения от возраста в скобках, ну и конечно же, даже HTML «не особо» валидный. Вариант отпал. Дальше пошла работа, и времени+желания искать другие варианты не было.
Вскоре на Хабре появилась статья «Экспорт Дней рождения из вКонтакте в Google Calendar», которая предлагала аналогичное решение, только в виде юзерскрипта, причем с впихнутым внутрь jQuery. Ну ладно, подумал я, то что тормозит — не очень страшно, главное — работает. К сожалению, обнаружилась пара неприятных багов (в т.ч. проблемы с спецсимволами в именах, ограничение в одного человека на день) и этот вариант тоже отпал.
Вчера же от
Ознакомиться и скачать «страничку» можно здесь: http://pastebin.com/Q4dwGQyL
Если лень создавать свое приложение вконтакте и хотите просто воспользоваться готовым решением, можете попробовать здесь: http://rreverser.com/dev/vkcal.htm (предупреждаю, хостинг бесплатный, так что может не выдержать знаменитого эффекта).
Способ использования:
- Нажимаете кнопку логина вконтакте
- Разрешаете доступ
- Ждете до появления кода в textarea
- Нажимаете одну из кнопок «Save...» либо сохраняете полученный код в ICS-файл вручную
- Импортируете сохраненный файл в календарь (Google Calendar, Outlook, etc.)
Примечание: скрипт написан моим другом RReverser.