Об одном недостатке VK API вслух / Хабр
Доброго времени суток, уважаемые жители Хабра!
Начну я с того, что, в моем понимании, Хабр — это чудовищное по своей мощности оружие. Не в смысле того, что им можно кого-то убить. Конечно, нет. Просто он дает самым обычным разработчикам возможность поделиться своими мыслями с потрясающе широкой аудиторией. Причем не имеет особого значения, о чем идет речь. Будь то бережно создаваемый в последние полгода “на коленке” собственный проект или новость о новинках от Google и Apple — все равно. Вас услышат, потому что здесь все равны перед кармой и рейтингом, у каждого есть право слова и голоса. Демократия во всей ее красоте да и только. Но, как и любым оружием, Хабром нужно пользоваться крайне аккуратно. Иначе отдача замучает =)
Я долго подбирал тему, достойную того, чтобы испытать всю силу хабравлияния, и вот, кажется, нашел. Давайте поговорим об API всем известной социальной сети ВКонтакте и о том, что в нем мне кажется нелогичным или, быть может, слегка рудиментарным, подлежащим пересмотру и изменению? Ниже я обязательно расскажу, как и почему пришел к такой мысли.
Внимание! Желающие обсудить последние события из жизни Павла Дурова, ФСБ или знакомых школьников! Прошу вас, ради всего ценного, что есть в вашей жизни, не нажимайте на ссылку “Читать далее”! Я бы очень хотел, чтобы этот пост достиг своей цели, а скандальность — последнее, что для этого нужно.
Социальные сети. Понятие, вошедшее в нашу жизнь так же плотно, как смартфон или компьютер. Миллионы пользователей. Гигабайты информации. Неисчислимое множество моделей применения. Социальные сети особенно ценны тем, что позволяют разработчикам постучаться к своим пользователям прямо в дверь: «Эй, привет! Посмотри какое классное приложение! Оно изменит твою жизнь к лучшему. Я обещаю!». Это потрясающе! В конце концов мы ведь именно для этого пишем программы? Чтобы делать мир лучше? Нет, конечно, нам нравится и то, что за нашу работу неплохо платят. Но душу греют не суммы на счету, а цифры на счетчике посещений.
Когда я впервые познакомился с API Вконтакте, мне показалось, что лучшей находки в моей карьере еще не было. Сколько невероятных идей пришло ко мне в голову с первых же строчек документации! Конечно, они не идут ни в какое сравнение по своей креативности, например, с вот этой. Но все же =) Тогда я сделал то, что сделал бы любой из вас на моем месте: начал увлеченно программировать. Однако будущее оказалось не таким безоблачным, как мне бы хотелось. За простым и изящным REST-интерфейсом крылись суровые и далеко не всегда мне понятные правила и ограничения.
Все методы API Вконтакте делятся на два больших класса: обычные и расширенные. Раньше это было видно прямо из документации: описания методов из разных классов находились в разных разделах, — но в результате последнего обновления различие визуально сгладилось. Теперь у тех методов, что раньше назывались расширенными, просто указано в описании, что они доступны исключительно для standalone-приложений: мобильных или десктопных. А если вы решили написать глубоко завязанное на ВК веб-приложение, которому требуется работать, скажем, со стеной или сообщениями пользователя? Тут вас поджидает разочарование.
Для работы с большинством методов VK API приложению потребуется токен. В общем случае процесс его получения выглядит так:
- Приложение отправлят пользователя на AUTHORIZE_URL, в параметрах указав CALLBACK_URL;
- Вконтакте переадресует пользователя на страницу, где он подтверждает права доступа приложения;
- Вконтакте переадресует пользователя на CALLBACK_URL, в параметрах передавая токен и срок его жизни;
- Приложение, получив запрос на CALLBACK_URL, понимает, что это от ВК, вытаскивает токен и запоминает его.
Однако, для того, чтобы получить токен, обеспечивающий доступ к расширенным методам, в качестве callback-адреса вам придется указать https://oauth.vk.com/blank.html. Таково требование API. Поскольку мобильные/декстопные приложения, по задумке авторов, используют для получения токена встроенный браузер (имеется в виду, например, компонент webkit), то у них проблем нет: отловил редирект, извлек информацию о пользователе и токен, сохранил все это дело и радуйся. У веб-приложений так, очевидно, не получится.
У меня возникает логичный вопрос: зачем? Почему было введено такое ограничение и почему оно существует до сих пор? Могу предположить, что доступность вызова произвольных методов с десктопов и мобильников имеет под собой простое обоснование: это толкает разработчиков на создание альтернативных клиентов и всевозможных мессенджеров. Так почему бы не убрать этот запрет для веба? К чему ставить лишние палки в колеса фантазии разработчиков? Отнюдь не все удобные и хорошие идеи можно и нужно поставлять как standalone, согласитесь? На волне повсеместного «ухода в облака» и создания веб-приложений, обладающих потрясающе широкой функциональностью и удобным UI на HTML5, это ограничение выглядит как-то… неудобно.
С вопросом: «А нельзя ли как-то все таки получить токен с нужными привелегиями, если я честный парень и клятвенно обещаю не рассылать спам, не создавать ботов и молиться правильным богам?», — я и обратился в службу поддержки Вконтакте. И мне, — тут барабанная дробь и виртуальный плюсик в карму ВК, — ответили, причем довольно быстро и вежливо.
Содержание ответа
Добрый день!
Мне очень жаль, но исключений мы не делаем.
Доступ к личным сообщениям с внешнего сайта нельзя получить ни при каких условиях.
Часть методов для работы с фотографиями в веб вполне работает, постить записи на стену можно с использованием окна подтверждения.
С уважением,
Команда поддержки ВКонтакте.
Тут бы, казалось, мне пойти курить и думать, какой бы хак посуровее вкрутить, чтобы таки заполучить нужный мне токен. Так бы и сделал, но неожиданно на меня снизошел дзен. Я решил попытаться что-то изменить. Проблема состоит в том, что API — это прежде всего интерфейс, предназначенный для сторонних разработчиков. Им пользуюсь не только я, но и тысячи других программистов, ежедневно клепающих всякие хаки и применяющих грязные трюки, чтобы решить очень простую и логичную задачу, принеся счастье и улыбки в дом конечного пользователя. Логично предположить, что эти самые разработчики должны иметь возможность как-то влиять на эволюцию инструмента, которым им предлагается пользоваться. Имеющееся сейчас разграничение на обычные и расширенные методы создает ощущение… ну… как от кофейного автомата, который почему-то не умеет выдавать сдачу: вроде кофе и можно купить, но придется всем отделом мелочь собирать.
Надеюсь, что мой скромный пост сподвигнет ВК как минимум к диалогу с разработчиками, а, в идеальном случае, и к снятию ограничений с веб-приложений. Ребята, искусственное ограничение возможностей — это и правда очень и очень неудобно.
UPD. Народ, кто считает, что все ок и так и должно быть или ставит минусы статье, отпишитесь в комментариях — почему? Правда интересно. Это ведь порядком ограничивает вашу свободу при разработке.
vk-sms — Google Такой
AlleBilderVideosNewsMapsShoppingBücher
suchoptionen
Tipp: Begrenze diesuche auf deutschsprachige Ergebnisse. Du kannst deinesuchsprache in den Einstellungen ändern.
Получить СМС код для верификации ВК на виртуальный номер телефона
grizzlysms.com › vk-com
Временные номера телефонов для верификации ВК от Grizzlysms. …Во время регистрации может потребоваться получение смс-кода ВК для подтверждения личности.
Erhalten Sie kostenlose SMS von VK
de.mytempsms.com › получение-sms-от › VK
Sie konnen SMS von VK kostenlos empfangen. Wenn Sie eine Telefonnummer for the Online-Empfang von SMS for VK benötigen, ist unser Service immer verfügbar …
Получайте смс от ВКонтакте онлайн бесплатно! — Временный номер телефона
временный номер-телефона.com › Прием-SMS-от…
Получайте смс от ВКонтакте с бесплатными одноразовыми телефонными номерами, Постоянный бесплатно без каких-либо дополнительных условий, Получайте SMS-сообщения ВКонтакте онлайн, чтобы сохранить вашу конфиденциальность !
Получать SMS онлайн от VKCOM Бесплатно Для подтверждения SMS
www. receivesms.co › получать-sms-от-vkcom
Вы можете получать любые текстовые сообщения онлайн с нашими бесплатными одноразовыми номерами, и вы можете использовать наш сервис. .. ВК: 310301 — используйте этот код для смены пароля.
Услуга VK SMS — Ucom.am
www.ucom.am › личные › развлечения › vk-sms-…
С помощью этой услуги вы можете получать информацию о своих личных сообщениях с помощью бесплатных SMS и отвечать на них, просто отправив ответное SMS на номер, с которого вы …
Купить виртуальные номера для ВК — SMS-Activate
sms-activate.org › info › vk
Купить виртуальный номер для регистрации в ВК по низким ценам можно на нашем сайте. Это более 170 стран.
получать смс от вк,получать смс онлайн бесплатно — Receive-Sms.CC
receive-sms.cc › Receive-SMS-From › VK
Вам не нужно регистрировать аккаунт или что-то в этом роде . Просто используйте один из телефонных номеров ниже и используйте их для проверки телефона / SMS ВКонтакте.
Виртуальный номер телефона для регистрации и получения СМС Сегодня в…
vk.com › wall-162654800_1220
3) Мониторить выбранный нами номер прямо на сайте СМС получателя, где отображаются все входящие сообщения в настоящее время. На некоторых ресурсах просто …
Временные номера для ВК | Прием смс онлайн — SMS24.me
sms24.me › сообщения › vk
Прием смс онлайн для ВК. Используйте один из временных номеров телефонов, указанных ниже, и используйте их для подтверждения своего смс-телефона ВКонтакте.
Купить виртуальный номер для регистрации ВК без телефона от 0,07$
sms-man.com › блог › купить-виртуальный-номер-зарегистрировать…
Bewertung 5,0
(14) · 0,07 $
15.03.2021 · Скопируйте и вставьте в соответствующую строку в форме регистрации в социальной сети. Чтобы увидеть SMS с кодом активации, вернитесь на .. .
Ähnlichesuchanfragen
ВКонтакте СМС-код не получен
Обойти ВК SMS-подтверждение
VK account free
VK phone number
VK verification
Buy phone number for SMS verification
SMS verification service
Temp VK account
mail-ru-ceo — Google Suche
AlleNewsBilderVideosMapsShoppingBücher
Suchoptionen
Mail.Ru / Генеральный директор
Борис Добродеев
Борис Добродеев
Генеральный директор, Mail.Ru
Дата: 15. 19 апреля84 (Alter 38 Jahre), Moskau, Russland
Ausbildung: Istoricheskiy Fakul’tet Mgu
Großelternteil: Boris tichonovič dobrodeev
Onkel: Dmitriy dobrodeev
. и ключевая исполнительная команда — Craft.co
craft.co › Mail.ru
Соучредитель и председатель правления Mail.ru — Дмитрий Гришин. Среди ключевых руководителей Mail.ru Дмитрий Гришин и еще 17 человек. Хедшот Дмитрия Гришина.
Борис Добродеев — генеральный директор @ Mail.Ru Group — Crunchbase Личный кабинет
www.crunchbase.com › человек › boris-dobrodeev
Борис Добродеев — генеральный директор Mail.Ru Group. Логотип группы Mail.Ru. Генеральный директор Mail.Ru Group Октябрь 2016 …
Дмитрий Гришин — Википедия
en.wikipedia.org › wiki › Dmitry_Grishin
Дмитрий Гришин (род. 15 октября 1978 г.) — бизнесмен, инвестор и интернет-предприниматель. Он наиболее известен как соучредитель и бывший председатель и главный исполнительный директор …
Технологии Карьера и Mail.ru · Карьера
ВК (компания) — Википедия
en.wikipedia.org › wiki › ВК_(компания)
ВКонтакте, до 12 октября 2021 года известная как Mail.ru Group Российская технологическая компания. … Владимир Кириенко (CEO). Услуги, электронная почта, поисковая система, …
История · Статистика · Услуги · Споры
Mail. ru Group Limited: Владимир Кириенко назначен новым генеральным директором …
cbonds.com › новости
13.12.2021 · Владимир заменяет Бориса Добродеева, который в связи с изменениями в структуре акционеров МФТ объявил о своем намерении уйти с поста …
Соучредитель Mail.ru Дмитрий Гришин уходит с поста генерального директора, заменен на …
techcrunch.com › 26.10.2016 › mail-ru-co-founder…
26.10.2016 · Соучредитель Дмитрий Гришин объявил об уходе с поста генерального директора, чтобы его заменит Борис Добродеев, нынешний генеральный директор «ВКонтакте».
Mail.ru Group | Обзор компании и новости — Forbes
www.forbes.com › компании › mailru-group
Mail.ru Group Ltd. занимается развитием интернет-коммуникаций и развлекательных услуг. … СтранаРоссия. Генеральный директорБорис Добродеев …
Фрэнк Генри — генеральный директор Mail.Ru Group — LinkedIn
www.linkedin.com › .