Несмотря на броское название, по сути эта небольшая история обличает нашу собственную глупость. Обычно такие вещи не выставляют на всеобщее обозрение, но опыт оказался уж больно поучительным, и мы решили поделиться им с вами.
Еще в начале работ над Омнидеском планировалось, помимо прочих каналов, реализовать поддержку Вконтакте. Позже стало очевидно, что некоторые каналы прийдется отложить, чтобы не затягивать с запуском сервиса. Поэтому остановились на том, что Вконтакте подключим после выхода из беты.
Однако первая статья на Хабре и последовавший за ней серьезный поток обратной связи явно указали, что нужно срочно повышать приоритет канала «Вконтакте». Так и поступили — отодвинули другие задачи и взялись за ВК.
Первым делом бегло пробежались по API ВК и убедились, что в нем есть все методы для реализации нужного нам функционала. Далее перешли к интерфейсной части и правкам базы данных. Многие вещи были частично готовы еще с Facebook-канала, и нужно было лишь переделать отличающиеся части.
Через какое-то время приступили к реализации самого функционала через API. Начали с личных сообщений. Вот тут мы и столкнулись с очень неприятным сюрпризом. Оказалось, что доступ к личным сообщениям через API могут получить только standalone-приложения (мобильные и десктопные). Для веб-сервисов этот API-метод недоступен.
Мы расстроились не на шутку, ведь это означало, что поддержка ВК будет частичной. Обратились за помощью в службу поддержки, чтобы узнать, если есть какой-то выход из нашей ситуации. Ответ совсем не порадовал:
Пришлось утешать себя тем, что личные сообщения — не самый главный для нас функционал. Их ВК-реализация сильно отличается от таковой на Facebook’e, где личные сообщения есть как у пользователя, так и у каждой ФБ-страницы. В случае же с ВК есть только сообщения пользователя, которые не столь важны, когда речь идет о группах и страницах.
Нужно было двигаться дальше. Взялись за посты и комментарии к ним. И снова сюрприз — половина методов к ним тоже недоступна для веб-сервисов. Как же мы недоглядели этот момент изначально?! Это была трагедия вселенского масштаба. Остаться без нужного функционала и потратить впустую так много времени.
Горькая ирония заключалась в том, что перед реализацией каналов «Facebook» и «Twitter» мы очень тщательно изучили их API-документацию. Когда же очередь дошла до ВК, нам и в голову не пришло, что там могут быть такие подводные камни.
Все надежды были возложены на попытки уговорить ВК пойти нам навстречу. Первые обсуждения с саппортом не увенчались успехом, и мы попробовали достучаться до «высшей инстанции»:
В ответ тишина. То ли на нас попросту забили, то ли вопрос действительно долго ожидал своей очереди, но ответили только через две недели. И это при том, что мы пару раз «терроризировали» их, создавая другие заявки с просьбой ускорить решение изначального вопроса.
Не то чтобы мы жалуемся. Понимаем, что виноваты сами. Просто удивляет нежелание ВК сделать базовые API-методы доступными не только для standalone-приложений. Что это? Чрезмерная недоверчивость к веб-сервисам? Своеобразная попытка отличиться от Facebook'а? Или, наоборот, не вовремя сломанная копировальная машина?
Но шутки в сторону. Перед началом реализации чего-либо обязательно убедитесь, что это возможно сделать. Лучше потратить время на изучение всех нюансов, чем после оказаться в ситуации, когда достижение нужного результата не зависит от вас.
Автор: cissav