В рамках одного нашего проекта в Brights появилась необходимость реализовать автоматическую публикацию обновлений на стену сообщества Вконтакте. Подобная задача, думаю, встречается довольно часто. Подкатом предлагаю готовый пример реализации на языке C#.
Получаем доступ к методам Вконтакте Api без ведома пользователя
Из песочницы
Вступление
Данная уязвимость была найдена мною порядка двух месяцев назад, или даже больше.
Тогда информация была отправлена разработчикам, и они успешно её фиксанули.
Как мне на тот момент показалось.
Вскоре стало понятно, что они её вовсе не пофиксили, а просто ограничили доступ к сообщениям, на которые я в тот раз обратил внимание разработчиков.
Процесс получения доступа, я постараюсь достаточно подробно описать под катом.
Автоматическое оповещение читателей о новостях с помощью ВКонтакте. Часть 4
На хабре уже было несколько статей о работе с вконтактом (раз, два, три), однако оно производилось через простые запросы на страницы с последующим ее парсингом. Это ужасно неправильно, так как если верстка страницы либо порядок запросов поменяется — скрипт перестанет работать. Кроме того, если не ошибаюсь, это запрещено правилами сайта.
Для этого есть официальный API от вконтакте.
Для этого есть официальный API от вконтакте.
Авторизация через JS
Сегодня что-то дернуло прикрутить к своему сайту авторизацию через Вконтакте. Покрутился по интернету, посмотрел на типовое решение на сайте Вконтакта. Решил проверить. И не получилось.
Более того — отправился на сайт великого и могучего. Но и там не получилось.
Поискал информацию на хабре, потом на гугле, потом начал тестировать.
Более того — отправился на сайт великого и могучего. Но и там не получилось.
Поискал информацию на хабре, потом на гугле, потом начал тестировать.
Синхронизация ВКонтакте с адресной книгой для iPhone. Как это делалось

ВКонтакте Android SDK
Решили поделиться своими наработками по реализации ВКонтакте API для Android. Данное SDK позволяет быстро авторизоваться и вызывать методы API, например отправить запись на стену, получить список друзей пользователя и многое другое. Изначально библиотека разрабатывалась как ядро проекта Kate Mobile. Совсем недавно пришла идея оформить часть кода в ощедоступную библиотеку. На скорую руку вынести её в отдельный проект и теперь она доступна всем желающим. Сейчас реализованы основные методы API, пополняем по мере необходимости. Будем улучшать на основании полученного фидбэка. Если он будет.
Пишем модуль для авторизации в VK API
Из песочницы
На днях возникла необходимость сохранить все фотографии из своего фотоальбома ВКонтакте на жесткий диск. Естественно, вариант, с сохранением фотографий по одной, меня не устроил. Тут вспомнилось, что у ВКонтакте есть API. Пять минут чтения мануалов, и все нужные функции найдены. Единственная проблема – не существует нормального способа, для получения доступа к API. В документации сказано следующее:
На первый взгляд, набросать простенький портабельный скрипт не получится. Хотя, что мешает нам притвориться браузером?
Процесс авторизации приложения состоит из 3-х шагов:
- Открытие окна браузера для аутентификации пользователя на сайте ВКонтакте.
- Разрешение пользователем доступа к своим данным.
- Передача в приложение ключа access_token для доступа к API.
На первый взгляд, набросать простенький портабельный скрипт не получится. Хотя, что мешает нам притвориться браузером?
OAuth на практике. Аутентификация и авторизация пользователей сайта через популярные социалки
Думаю, не мне одному чрезвычайно надоели ресурсы, требующие регистрации по каждому поводу и без. С обязательной капчей, которая правильно введется только с пятого раза, с подтверждением по е-мейлу, которое обязательно свалится в спам и то — только через сутки. Придумывать каждый раз новую пару логин-пароль — забудется, вводить одно и то же на всех сайтах — небезопасно. Местами прокатывают пары вида «qwerty:qwerty» или «login:password», но, увы, далеко не везде. Надоело. Не счесть, сколько раз я, увидев надпись «только зарегистрированный пользователь может ****», просто кривился и закрывал вкладку, чтобы больше ни разу на этот сайт не заходить. Неужели администраторы ресурсов сами этого не понимают?
VK::App — модуль для создания клиентских приложений в vk.com
Хочу рассказать о своем модуле VK::App для создания клиентских приложений в социальной сети vk.com. Основные возможности модуля:
- Авторизация, основанная на OAuth 2.0, по логину/паролю или cookies.
- Установка прав доступа, которые потребуются приложению.
- Выполнение любых запросов VK API и получение результата в JSON, XML или Perl Object виде.
VK Offline — E-mail клиент и адресная книга на основе данных ваших профилей ВКонтакте
Полгода назад мы рассказывали вам о нашем приложении VK Offline для Google Chrome, которое воплощало концепт E-mail клиента и адресной книги на основе данных ваших профилей ВКонтакте. С тех пор утекло много воды, и приложение доросло до четверой версии, воплотив почти все наши задумки. Сейчас VK Offline — это одно из лучших приложений в российском Chrome Web Store, которое объединяет легкость и простоту диалогов ВКонтакте с удобными и привычными функциями любого E-mail клиента и адресной книги.
Мы прошли большой путь при разработке приложения и хотели бы поделиться с вами информацией о ключевых возможностях, которые есть в приложении сейчас, а также об основных технических приемах, которые мы используем при разработке и тестировании приложения.
Мы прошли большой путь при разработке приложения и хотели бы поделиться с вами информацией о ключевых возможностях, которые есть в приложении сейчас, а также об основных технических приемах, которые мы используем при разработке и тестировании приложения.
Проблема OS X, Dual Stack и VK API
Я разрабатываю программу для OS X, которая взаимодействует с API VK и последний апдейт никак не принимали цензоры Mac App Store. После нескольких уточнений мне прислали видео работы программы, над которым я ломал голову несколько дней.
О причинах такого поведения я расскажу в этой статье. Сразу хочу сказать, что не считаю это багой vk.com или OS X, но они оба могут эту ситуацию исправить.
О причинах такого поведения я расскажу в этой статье. Сразу хочу сказать, что не считаю это багой vk.com или OS X, но они оба могут эту ситуацию исправить.
Авторизация пользователей, у которых заблокированы cookies

Я хочу поделиться простым и изящным решением, как обойти это ограничение.
vkontakte_api: ruby-адаптер для ВКонтакте API
В начале этого года мне понадобилось работать с API ВКонтакте из rails-приложения. Увы, я не нашел сколько-нибудь устраивающего меня гема: где-то меня принуждали писать названия методов в camelCase (что в ruby-коде выглядит неестественно), где-то — обязательно проходить авторизацию через библиотеку (при том, что я использовал omniauth) и вообще везде для обращений к API использовался захардкоденный
Так появился на свет vkontakte_api. Рельсовый проект, послуживший поводом для написания данной библиотеки, уже успел почить — но гем живет и продолжает развиваться, в июле достигнув версии 1.0 (которая послужила поводом для значительных изменений). Используя
Посмотрим, как работать с API с помощью

Net::HTTP
, блокирующий реактор эвентмашины, на которую я тогда прицеливался. Также в плане документации почему-то все было очень грустно, и приходилось постоянно читать исходники.Так появился на свет vkontakte_api. Рельсовый проект, послуживший поводом для написания данной библиотеки, уже успел почить — но гем живет и продолжает развиваться, в июле достигнув версии 1.0 (которая послужила поводом для значительных изменений). Используя
faraday
, библиотека поддерживает вызов любых методов API, загрузку файлов на сервера ВКонтакте и опциональную авторизацию, не принимая за программиста решения, упомянутые в предыдущем абзаце.Посмотрим, как работать с API с помощью
vkontakte_api
. В качестве примера сгодится несложное веб-приложение, отображающее на странице ленту новостей (API-метод newsfeed.get), список друзей (friends.get) и групп (groups.get) пользователя, прошедшего OAuth2-авторизацию. А выглядеть это будет примерно так:
Кросспостинг из Twitter в ВКонтакте с помощью роутера
Здравствуйте, меня зовут Евгений, и я алкоголик люблю социальные сети. В силу отсутствия каких-либо намеков на писательский талант я предпочитаю Twitter — его ограничение на 140 символов избавляет от необходимости придумывать что-то длинное. К тому же, только для твиттера есть нормальный java-клиент, которым я раньше пользовался на мобильном телефоне.
С другой стороны, бóльшая часть моя знакомых использует ВКонтакте, да и мне, честно говоря, нравится слушать там музыку и читать новости. Очевидно, что писать самому в две разных соцсети неудобно, нужно это автоматизировать — использовать кросспостинг (перенос постов).
Далее небольшое описание моего не совсем обычного способа кросспостинга.
С другой стороны, бóльшая часть моя знакомых использует ВКонтакте, да и мне, честно говоря, нравится слушать там музыку и читать новости. Очевидно, что писать самому в две разных соцсети неудобно, нужно это автоматизировать — использовать кросспостинг (перенос постов).
Далее небольшое описание моего не совсем обычного способа кросспостинга.
Виджет ВКонтакте «Мне нравится» кэширует параметры
Из песочницы
Думаю, все знают что делает виджет «Мне нравится». Для числа несведущих поясню – виджет добавляет на HTML страницу одноименную кнопку, при нажатии на которую увеличивается счетчик. Пользователь также может рассказать о странице на своей стене ВКонтакте. Многие используют этот виджет, но нет ни одного упоминания в свободном интернете о серьезном подводном валуне. Дело в том, что после первого использования, параметры виджета навсегда кэшируются на серверах ВКонтакте и нет возможности их поменять не сбрасывая счетчика.
Facebook ограничил число комментариев, отображаемых незалогиненным читателям
Напомню: andorro 19 декабря прошлого года поведал нам о том, что некоторые сайтостроители экономят усилия, воздерживаясь от создания собственной системы комментариев. Для такой экономии на сайте размещаются готовые виджеты, предназначенные для оставления комментариев участниками социальной сети Facebook, или ВКонтакте, или Disqus. Иногда сразу нескольких сетей. Читателям это также повадно: не надо возёхаться, залогиниваясь на сайте, ведь им достаточно быть залогиненными в «своей» социальной сети.
Впрочем, есть у этого подхода и свои недостатки. Так, Semenych 25 декабря прошлого года предположил, что участие всех комментаторов сайта в одной и той же социальной сети побуждает их к отходу от темы обсуждаемой страницы — например, к отходу в сторону поиска новых знакомств.
На днях я обнаружил и другой недостаток:
![[not logged in]](https://habrastorage.org/getpro/habr/post_images/b8d/931/3c1/b8d9313c1f42c79711ab8ec59f03e565.png)
И вот как это произошло.
Впрочем, есть у этого подхода и свои недостатки. Так, Semenych 25 декабря прошлого года предположил, что участие всех комментаторов сайта в одной и той же социальной сети побуждает их к отходу от темы обсуждаемой страницы — например, к отходу в сторону поиска новых знакомств.
На днях я обнаружил и другой недостаток:
![[not logged in]](https://habrastorage.org/getpro/habr/post_images/b8d/931/3c1/b8d9313c1f42c79711ab8ec59f03e565.png)
И вот как это произошло.
Получение email пользователя через API Вконтакте
Всем доброго времени суток!
Пожалуй, заголовок моей темы, уже избит до неузнаваемости и даже, может вызвать саркастические улыбки на лицах читателей. Но, все же, я попробую.
Хоть и занимаясь веб разработкой, да и программированием в целом не так давно, мне все же пришлось столкнуться с API социальных сетей, таких как Facebook и Вконтакте. Робота с «лайками» и другими данными проходила на ура. Но вот, попал в тупиковую ситуацию: как мне связать пользователей в общий аккаунт(проблема была следующая Вконтакте, в отличии от своего старшего брата, упорно не хотел отдавать email пользователя). Перечитав множество, форумов, разнообразных FAQ, пришел к выводу, что это все же невозможно. Мол, разработчики социальной сети, не хотят выдавать столь конфиденциальную информацию о своих пользователях. С этим пришлось смириться. Поставленная задача была решена другим способом, а в душе затаилась небольшая обида.
Но, мой пост, немного не об этом. Буквально сегодня наткнулся на следующий сайт:
Работаем с API вконтакте из расширения для Google Chrome
Tutorial

По сути, самая сложная часть это получение токена для доступа к API вконтакте, но обо всём по порядку. Для пущей наглядности я приведу пример минимально полезного расширения (что бы оно хоть что-то полезное делало, а вообще оно было сделано для удобного рехостинга гифок). И так расширение будет простое, но рабочее.
Интеграция приложения на QML с веб-ресурсами
Tutorial
Здравствуй, дорогой хабражитель! Я хочу рассказать, как интегрировать программу на новомодном языке QML с веб-ресурсами.
Сам по себе, QML — это декларативный JavaScript-подобный язык программирования, который входит в фреймворк Qt. Разработчики Qt настроены серьезно и продвигают его как основной инструмент создания интерфейсов. Более того, достаточно много вещей можно сделать не прибегая вообще к C++, в том числе и возможность работы с веб-серверами.
Веб-технологии все сильнее проникают в нашу жизнь, мы часто пользуемся различными веб-ресурсами. Не всегда удобно для этого запускать браузер, иногда отдельное приложение-клиент гораздо удобнее, о чем красноречиво говорит, например, количество клиентов для различных социальных сетей, особенно на мобильных платформах.
Учитывая, что в Qt 5.1, альфа версия которой вышла на прошлой неделе, включена начальная поддержка Android и iOS, эта тема может быть особенно интересна тем, кто присматривается к Qt или активно ее осваивает. В этой статье я расскажу, как можно организовать работу с веб-ресурсами из приложения на QML на примере API ВКонтакте.
На всякий случай отмечу, что я рассматриваю последнюю стабильную версию Qt 5.0.2. В более ранних версиях каких-то возможностей может не быть.
Сам по себе, QML — это декларативный JavaScript-подобный язык программирования, который входит в фреймворк Qt. Разработчики Qt настроены серьезно и продвигают его как основной инструмент создания интерфейсов. Более того, достаточно много вещей можно сделать не прибегая вообще к C++, в том числе и возможность работы с веб-серверами.
Веб-технологии все сильнее проникают в нашу жизнь, мы часто пользуемся различными веб-ресурсами. Не всегда удобно для этого запускать браузер, иногда отдельное приложение-клиент гораздо удобнее, о чем красноречиво говорит, например, количество клиентов для различных социальных сетей, особенно на мобильных платформах.
Учитывая, что в Qt 5.1, альфа версия которой вышла на прошлой неделе, включена начальная поддержка Android и iOS, эта тема может быть особенно интересна тем, кто присматривается к Qt или активно ее осваивает. В этой статье я расскажу, как можно организовать работу с веб-ресурсами из приложения на QML на примере API ВКонтакте.
На всякий случай отмечу, что я рассматриваю последнюю стабильную версию Qt 5.0.2. В более ранних версиях каких-то возможностей может не быть.
Об одном недостатке VK API вслух

Доброго времени суток, уважаемые жители Хабра!
Начну я с того, что, в моем понимании, Хабр — это чудовищное по своей мощности оружие. Не в смысле того, что им можно кого-то убить. Конечно, нет. Просто он дает самым обычным разработчикам возможность поделиться своими мыслями с потрясающе широкой аудиторией. Причем не имеет особого значения, о чем идет речь. Будь то бережно создаваемый в последние полгода “на коленке” собственный проект или новость о новинках от Google и Apple — все равно. Вас услышат, потому что здесь все равны перед кармой и рейтингом, у каждого есть право слова и голоса. Демократия во всей ее красоте да и только. Но, как и любым оружием, Хабром нужно пользоваться крайне аккуратно. Иначе отдача замучает =)
Я долго подбирал тему, достойную того, чтобы испытать всю силу хабравлияния, и вот, кажется, нашел. Давайте поговорим об API всем известной социальной сети ВКонтакте и о том, что в нем мне кажется нелогичным или, быть может, слегка рудиментарным, подлежащим пересмотру и изменению? Ниже я обязательно расскажу, как и почему пришел к такой мысли.
Внимание! Желающие обсудить последние события из жизни Павла Дурова, ФСБ или знакомых школьников! Прошу вас, ради всего ценного, что есть в вашей жизни, не нажимайте на ссылку “Читать далее”! Я бы очень хотел, чтобы этот пост достиг своей цели, а скандальность — последнее, что для этого нужно.