Лично я не любитель соцсетей, а в особенности — вконтакте, из-за которого у меня было немало времени, потраченного впустую. Собственно поэтому в свое время я решил из него удалиться. Но в определенный момент я понял, что контакт служил не только местом , где можно было с утра до ночи нажимать F5 на странице Новостей для общения, но также сервисом, благодаря которому я мог вовремя узнавать о днях рождения друзей и, таким образом, поддерживать с ними хорошие отношения.
Таким образом, была поставлена задача: экспорт календаря в внешний сервис (в моем случае — Google Calendar). Используется родной API, поэтому все работает быстро и без багов. Кому интересно — прошу под кат.
Итак, были рассмотрены следующие варианты:
Вариант в лоб — написать скрипт, который собирает ответы на AJAX-запросы страницы календаря. В общем, обход проблем с безопасностью, полчаса над Firebug-овскими ответами сервера, создание php-шки — и получился файлик с форматированными HTML-блоками, с которого к тому же надо вычислять год рождения от возраста в скобках, ну и конечно же, даже HTML «не особо» валидный. Вариант отпал. Дальше пошла работа, и времени+желания искать другие варианты не было.
Вскоре на Хабре появилась статья «Экспорт Дней рождения из вКонтакте в Google Calendar», которая предлагала аналогичное решение, только в виде юзерскрипта, причем с впихнутым внутрь jQuery. Ну ладно, подумал я, то что тормозит — не очень страшно, главное — работает. К сожалению, обнаружилась пара неприятных багов (в т.ч. проблемы с спецсимволами в именах, ограничение в одного человека на день) и этот вариант тоже отпал.
Вчера же отнежелания делать что-либо полезное нечего делать решил вернуться к вопросу. Так как на этот момент у контакта уже есть более-менее нормальное API для внешних сайтов и js-приложений (OpenAPI), было решено использовать его. Пара часов разбирательств, сожаление, что нет аналога FQL или соцграфа, далее разборка с форматом iCalendar — и, таким образом, был создан простейший в плане кода и дизайна HTML-файл и контактовское приложение (дабы не нагружать сервер), которые позволяют получить ics-файл для последующего импорта в любую популярную программу-календарь.
Ознакомиться и скачать «страничку» можно здесь: http://pastebin.com/Q4dwGQyL
Если лень создавать свое приложение вконтакте и хотите просто воспользоваться готовым решением, можете попробовать здесь: http://rreverser.com/dev/vkcal.htm (предупреждаю, хостинг бесплатный, так что может не выдержать знаменитого эффекта).
Способ использования:
Примечание: скрипт написан моим другом RReverser.
Таким образом, была поставлена задача: экспорт календаря в внешний сервис (в моем случае — 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.