Как получить API ID «ВКонтакте

VK API. Основы. Получение токена. Первые запросы к API

VK.com предоставляет многофункциональный и удобный API, который позволяет делать всё, что приходит на ум программисту, и даже, немного больше.
API позволяет отправлять сообщения, получать и публиковать записи на стену, производить абсолютно любые действия, которые существуют в VK, от имени пользователя, кому был сгенерирован токен. Разобравшись с API на примере ВК, в будущем, вы безпроблемно сможете быстро вникать в API любых других сайтов. И, ввиду того, что 90% всех API имеют схожую реализацию, то понимание этой статьи будет для вас отличным стартом, и хорошей школой освоения «взрослых игрушек».

В недавней статье было рассмотрено, что такое REST API. Почитайте информацию по ссылке — это точно будет полезно.

  • Что такое VK API, разные группы API.
  • Получение токена доступа
  • Запросы к API (на примере получения всех записей пользователя со стены)
  • Резюме

ВК-API блиц

ВК предоставляет несколько реализаций API:

  • Streaming/Long Poll — позволяет получить данные в реальном времени. Сразу же, при обновлении данных в ВК, мы получаем актуальную информацию, без обновления страницы. Streaming и Long Poll реализуют разные подходы, но суть их одинаковая.
  • Виджеты для сайта — здесь всё просто: скопировал код, без хитрых настроек, и у тебя рабочий виджет на сайте.
  • Open API — работает на клиенте. Так же просто настраивается и используется. Преимуществом является то, что не обязательно иметь сервер для выполнения запросов. Будет работать в обычном HTML + JS.
  • Callback API — позволяет получать данные от самомого ВК, не выполняя запрос. В случае обновления данных, ВК сам нам присылает новые данные. Например, пользователь подписался на нашу группу, и ВК, автоматически пришлёт информацию об этом пользователе нашему скрипту.
  • REST API — позволяет взаимодействовать с данными ВК из скрипта. Позволяет автоматизировать любые пользовательские действия.

Для нас, как для программистов, на данном этапе — интересен REST API. Который позволяет взаимодействовать с пользователями, группами, рекламой, и прочими сущностями. Подробнее, обо всех доступных методах можно почитать здесь.

Для получение доступа к REST API, необходимо иметь специальный ключ vk api token . Это уникальное значение, аналогично логину и паролю — идентифицирует пользователя, от имени которого выполняются запросы.

Как гласит 2 правило проектирования REST API — между запросами не должно сохраняться состояния. Система по определению не может использовать сессии, потому применение токена актуально для идентификации пользователя.

Как получить токен VK.COM

Получение токена состоит из двух частей: регистрации своего приложения и получение токена в этом приложении.

Создать приложение можно на странице. Указав название приложения, и выбрав его тип.
Я выбираю Standalone , потому что тогда можно будет получить токены с бОльшим возможностями, чем в остальных вариантах (придётся поверить мне на слово, что это правда).

Создав приложение и перейдя на вкладку настроек, будет показано: id приложения, секретный ключ

Теперь, имея id приложения, можно получить токен доступа. Для этого нужно сформировать ссылку, подставив в неё id своего приложения.

где вместо нужно вставить id своего приложения.
а в параметре scope — перечислены разрешения, которыми мы хотим наделить токен, список всех разрешений
Однако здесь, одним из самых важных разрешений является offline , которое создаёт бессрочный токен, не имеющий ограниченного времени жизни.

Если вы не хотите создавать своё приложение, то можете получить токен по ссылке

Перейдя по сформированной ссылке, откроется диалоговое окно, в которому будут зачитаны права показаны разрешения, которыми наделяется токен (чем больше указано scope свойств, тем больше будет этот список)

Подтвердив, произойдёт переадресация на страницу, в адресной строке которой будет access_token , expires_in равный нулю (что логично, учитывая, что мы указывали создание вечного токена)

Я сократил токен для сохранения читабельности. У вас он будет длиннее

Скопировав этот токен, можно делать первые запросы к API.

Как делать запросы к API

Сохраним полученный токен, потому как его нужно будет прикреплять к каждому запросу к VK API.

Для того, чтобы сделать запрос к API из PHP, нам нужна любая из доступных функций, способных совершить HTTP-запрос: file_get_contents, curl.

К слову, даже, если открыть в браузере сформированный адрес, то получим результат

Запрос к методам API состоит из шаблона: https://api.vk.com/method/?&access_token=&v=
где — имя метода
— параметры, индивидуальные, в зависимости от метода
— ранее сохранённый токен
— версия API (на момент написания статья = 5.78)

Зная всё это, сделаем первый запрос, на получение всех личных записей со стены. За стену отвечает сущность wall, а метод его get, который возвращает список всех записей со стены пользователя.
И, в итоге, имя метода будет сформировано в виде имени сущности (wall).имя метода (get) — wall.get

Так, первая часть URL-адреса уже сформирована: https://api.vk.com/method/wall.get

Теперь нужно определиться с передаваемыми параметрами (PARAMS). Все доступные, обязательные параметры с описанием можно посмотреть на странице метода.

Я буду передавать owner_id который соответствует id моего пользователя.

По факту же, это поле является необязательным в текущих условиях. Так как по умолчанию, ownwer_id будет проставлен id текущего пользователя.

И, можно было бы просто дописать в виде строки к существующему URL-адресу: . owner_id=120159853

Однако, если туда добавлять множество новых параметров, то в таком виде добавлять не удобно. Потому, я создам массив параметров, где ключом будет название параметра, а значение, соответственно, его значение. А с помощью функции http_build_query() можно привести массив к виду строки нужного вида:

Теперь, осталось только собрать воедино все те части, которые были разобраны выше.
Для этого, можно написать такой код:

При том, что даже токен и версию теперь можно вынести в массив $params , для более централизованной записи.

Осталось последний шаг — выполнение http-запроса. И, принимая тот факт, что данные возвращаются в виде JSON, то, результат, нужно дополнительно обернуть в функцию json_decode , которая приведёт JSON к обычному PHP-массиву. Вот так просто декодировать JSON.

В итоге, получаем обычный массив записей, который можем обработать как пожелаем

И, исходя из ответа выше, для получения записей выполним:

Резюме

Эта статья должна была показать вам, насколько просто пользоваться API, и какие преимущества открываются. Здесь было продемонстрировано, как получить токен vk, как делать запросы к vk api, на примере получения последних записей со стены пользователя.
И уже имея токен и полученные в этой статье знания — можете работать с любыми методами ВК. Удачи!

Subscribe to Блог php программиста: статьи по PHP, JavaScript, MySql

Get the latest posts delivered right to your inbox

VK API ID — как получить персональный ключ —>

Получение VK API ID открывает широкий спектр возможностей для стороннего разработчика, основным преимуществом которого является получения доступа к контактам и некоторым функциям социальной сети. Правильное использование VK API позволит сократить ваше время и принести пользу своем проекту.

Как получить VK API ID?

Основные преимущества API в социальной сети Facebook мы уже рассмотрели, а также алгоритм получения API ID. Пора поговорить о самой популярной социальной сети в рунете — vk.com . Следует понимать, что без добавочной ценности в виде социальных систем достаточно сложно продвигаться, так как трафик с поисковой системы не всегда можно получать. Особенно это касается тематик, которые слабо развиты, но имеют определенную ценность для пользователя и аналогично обстоят дела с крайне популярными тематиками, по которым тяжело конкурировать и иногда даже нет смысла.

Многие сайты получают трафик исключительно из социальных сетей и прочих каналов связи, избегая при этом поисковую систему. Согласитесь, логично развиваться в среде, которая сама к себе располагает пользователя и способствует его обозрению, без острой необходимости в информации (как это чаще всего получается в поисковой системе).

Простой пример: у вас есть сайт медицинской тематики, в частности про здоровый образ жизни. В поисковой системе скорее всего ваш сайт будут искать только тогда, когда у человека уже есть проблемы и он ищет пути их решения, когда в социальной сети, ситуация состоит обратная. В социальной сети пользователь просматривает интересующие его темы и вопросы, при том не имея проблем. Например, такой пользователь может зайти к вам на сайт с побуждений почитать о здоровой пище или просто прочитать пару статей про то, как держать себя в тонусе.

Итак, чтобы получать такой трафик, я бы советовал создать группу или страницу в vk и публиковать статьи с сайта, при этом обрезать их, создавая превью новости, чтобы пользователь мог понять — интересна ли ему статья. Но как же быстро публиковать статьи в таком формате? В этом нам и поможет VK API.

Как получить VK API ID

Для создания VK API ID нам потребуется произвести достаточно стандартную операцию:

  1. Переходим в среду разработки приложений . Если вы не залогинились или по каким-то причинам у вас нет аккаунта в VK, то самое время решить эту проблему;
  2. Нажимаем «Создать приложение»:
  3. После этого попадаем на страницу создания приложения, в которой необходимо ввести и после этого нажать «Подключить сайт»:
    • Название (для вашего понимания — подойдет любое название);
    • Тип — выбираем Веб-сайт;
    • Адрес сайта — вводим адрес своего сайта;
    • Домен сайта — вводим домен своего сайта.

Данная операция потребует подтверждение действий с помощью смс, либо мобильного телефона (если вы залогинены с его в VK):

Читайте также  Как отомстить подруге, которая тебя предала

После подтверждения создания приложения — мы попадаем на нашу страницу разработчика, в которой достаточно много различной информации. Нам необходимо перейти во вкладку «Настройки» и получить свой персональный VK API ID:

Можете оставить все поля незаполненными, но я советую это всё-таки сделать — лишним не будет. Если ID необходим вам для разработки стороннего сервиса, то советую прежде всего ознакомится с документацией, в которой содержатся различные методы и специфика работы с VK API.

Выводы

Вот такими способом можно получить VK API ID без особого труда и не потеряв уйму времени. Социальная сеть Вконтакте действительно открыта для разработчиков и активно способствует их развитию во всех планах: начиная с технической поддержки, заканчивая крайне дружелюбным интерфейсом, которым не может похвастаться тот же Facebook.

Теперь VK API ID может пригодится вам в самых различных ситуациях, в том числе и автоматический постинг записей, используя плагин для WordPress — AutoPoster. Это очень удобно и действительно качественно, так как присутствуют множественные детальные настройки отображения содержимого поста, за счёт возможности создания любого формата шаблона.

1000 друзей Павла Дурова: как выкачивать данные ВКонтакте

Обкачиваем соцсеть своими руками

Введение

Практически всем, кто занимается количественными исследованиями, знакома следующая проблема: идея есть, а данных для её реализации нет. И хотя сейчас существует немало сайтов с данными (например, Kaggle.com (https://www.kaggle.com/), где можно найти как корпус обзоров на вино, так и классификатор древнеяпонских иероглифов или метаданные по коллекциям Metropolitan Museum of Art), все равно найти что-то готовое, что соответствовало бы индивидуальным нуждам конкретного исследования, довольно сложно. В таких случаях остается одно: выкачивать данные самостоятельно.
ВКонтакте — ценный источник данных, который может помочь в лингвистических, социологических и других исследованиях. Хочется исследовать корпус авторских стихотворных сочинений подростков? Пожалуйста, практически готовый корпус уже ожидает тебя в группе, посвященной поэзии! Хочется понять, как в реальности работает теория шести рукопожатий? Выкачай случайных пользователей и построй граф!
На самом деле, это совсем не сложно, и сегодня мы покажем, как скачать заветные данные.

Что понадобится?

  1. Аккаунт ВКонтакте
  2. Среда для работы с Python* (уметь программировать почти не надо)
  3. Желание и немного времени

*Например, любые IDE: PyCharm, Sublime Text или любой другой, какой душе угодно. Мы в данном руководстве будем использовать оболочку Jupyter, функционал которой удобен для аналитики: можно писать и редактировать код на каждом этапе, не прогоняя всю программу целиком, строить красивые визуализации и делать ещё кучу всего интересного. Подробнее об установке и возможностях Jupyter можно посмотреть тут.

Примите во внимание, что код для туториала написан с целью помочь понять, что происходит и как все работает, поэтому не является образцом великолепия.

Этап 1. Получение ключа к ВК API

Первый шаг на пути к данным состоит в том, чтобы получить доступ к ВKонтакте API (Application Programming Interface), с помощью которого мы и будем дальше взаимодействовать с ВКонтакте. API содержит в себе множество методов, которые позволяют быстро доставать из базы ВК нужную информацию, например, со страниц пользователей, групп и т.д. (вернее, только ту информацию, которая не скрыта).
Чтобы иметь возможность их использовать, надо авторизоваться в ВК и создать Standalone приложение на странице API. Для этого надо во вкладке Мои приложения нажать Создать приложение.
Дальше надо выбрать Standalone-приложение, назвать его и подключить.
Как только вы его подключите, вы окажетесь во вкладке Информация, где находятся описание, название и т.д. Здесь трогать ничего не нужно, и можно сразу перейти на вкладку Настройки слева. Здесь мы смотрим на Сервисный ключ доступа, который надо скопировать или запомнить, потому что он нам понадобится дальше.
Страничку API пока оставляем открытой, мы к ней ещё вернемся чуть позже.

Этап 2. Пишем код

Часть 1. Пользователи

Шаг 1

Теперь, когда у нас есть ключ доступа к API, можно смело переходить к самой интересной части — написанию кода. Для начала устанавливаем библиотеки и подгружаем нужные модули оттуда. В туториале мы будем использовать библиотеку requests — пакет, который позволяет посылать http-запросы на сервер и отдавать ответы на эти запросы в различных форматах*.

** Если не знаете как устанавливать библиотеки в Python, не пугайтесь, Интернет полон различных гайдов о том, как это делать. Например, вот.
***На самом деле, это только один из способов добычи данных ВКонтакте через Python. Существует ещё некоторое количество библиотек, которые позволяют получать ответы от ВКонтакте API другими способами. Они очень хорошо гуглятся, так что при желании можно освоить и альтернативные техники. Или если кто-то уже знаком с другими методами, будет здорово услышать о них в комментариях).

Шаг 2

Теперь разберемся в том, как, собственно, делать запросы к ВКонтакте API. По сути, все это нам уже рассказали разработчики: мы формируем http-запрос о нужной нам информации, который мы отправляем в базу ВК. При этом разработчики ВК даже предлагают шаблон запроса:
Часть, которая нам интересна, выделена жирным шрифтом:
METHOD_NAME — обязательный параметр — метод, который мы хотим применить. Выбирается в зависимости от того, какую информацию мы хотим достать из базы. Полный список методов ВКонтакте API доступен по ссылке. Метод отделяется от последующих частей запроса символом ?.
PARAMETERS — это уже опциональный параметр, для каждого метода свой набор. Каждый метод по умолчанию отдает некоторую изначальную информацию, которую можно расширить с помощью этого параметра. Если параметров несколько, то они разделяются между собой символом &.
ACCESS_TOKEN — помните тот сервисный ключ доступа со странички разработчиков, который мы запомнили ранее? Это он и есть. Ключ обязателен при составлении запроса.
V — версия ВК API, без которой также нельзя сформировать запрос. На момент написания статьи версия API — 5.92.

Шаг 3

Рассмотрим процесс формирования и отправления запроса. Для начала определимся, что именно мы хотим достать. Допустим, что-то связанное с данными пользователей. Посмотрим список доступных методов и что они могут нам предложить. Для этого в списке методов выберем вкладку Users.

Появился список методов для работы с данными пользователей.

Шаг 4

Итак, попробуем вытащить расширенную информацию о пользователе. Откроем страницу метода get и внимательно читаем параметры. Допустим, мы хотим получить информацию о пользователе с идентификатором 1 (user_ids=1).
Для начала запишем ключ доступа и версию ВК API в отдельные переменные формата «строка», чтобы мы могли их использовать потом****.

* Заметьте, что так как мы используем Jupyter Notebook, нам не требуется создавать отдельный файлик на компьютере, хотя такой вариант и возможен. Но мы просто зададим ключи как переменные в отдельной ячейке скрипта. Теперь сформируем запрос к API. Для обращения к методу надо перед его названием написать, к какой группе он относится (так как названия методов пересекаются в различных группах). Мы записываем запрос как форматируемую строку, где значения в <> будут принимать значения переменных, которые там записаны**.

И посмотрим на результат

По умолчанию (без заданных параметров) мы получили просто имя, фамилию и статус страницы.

***** Если вы хотите получить информацию больше, чем об одном человеке, вы можете записать их идентификаторы через запятую. Если пользователей много, то можно задать их id в отдельной переменной (допустим, загрузить из файла), и записать её также в <>. Важно, чтобы они были разделены через запятую. Подробнее о форматировании строк в Python.

Шаг 5.

Теперь добавим конкретики. Допустим, мы хотим получить ещё даты рождения, страну и город. Эти поля находятся в параметре fields, как говорит нам документация.

Шаг 6.

Пойдем дальше: скачаем 200 друзей Павла Дурова и запишем их в отдельный список. Для этого нам потребуется функция из той же вкладки Users — getFollowers.
Сначала оформим запрос в виде строки, в которой мы будем потом форматировать части, находящиеся в <>.

Тут у нас появляется новые параметры — count и offset. Сount показывает, сколько друзей за один запрос мы будем выкачивать, а offset — на сколько значений мы будем сдвигаться каждый раз, когда отправляем новый запрос. То есть если бы параметра offset не было, мы бы каждый раз скачивали только 100 первых друзей, а с ним мы по очереди (итеративно) выбираем каждую следующую сотню.
Итак, сначала мы создаем пустой список friends, в который мы потом запишем выгруженных пользователей. Потом мы определяем, какие отступы (offset) у нас будут каждый раз и с каким шагом. За это отвечает функция range: условно говоря, у нас будет 3 шага от 0 до 300, каждый из которых будет равен 100. После чего мы циклом выкачиваем по 100 подписчиков за каждую итерацию. И в конечном итоге записываем фамилии пользователей в список.

И вуаля! Список подписчиков готов!

Часть 2. Сообщества

А теперь предположим, что для наших исследовательских целей мы хотим получить корпус каких-нибудь текстов. Для этого мы можем, например, скачать стену какого-то сообщества или пользователя.
Принцип тут тот же, что и при работе с юзерами: выбираем метод, формируем запрос, наслаждаемся.
Список методов для работы со стенами находится в соответствующей вкладке Wall в документации. Если мы хотим выкачать посты на стене, то нам нужен метод wall.get.
Давайте попробуем скачать посты сообщества Вышкинские хокку. Для начала попробуем выкачать первые 100 публикаций.

По сути, ничего особо не изменилось, кроме метода и его параметра: domain содержит короткий адрес сообщества, с которого мы выкачиваем данные.
Посмотрим на выдачу по первому посту: мы получили не только сам текст публикации, но и метаинформацию к нему, которую также при желании можно вытащить из списка и использовать.

Читайте также  Как сделать шаблоны для фрезера

Но мы в учебных целях сосредоточимся только на текстах публикаций. Теперь давайте соберем первые 400 постов со стены и запишем их в файлик на компьютере, чтобы можно было использовать потом.

Шаг 1

Пишем строку запроса, в который добавляем параметр offset, который отвечает за отступы.

Шаг 2

Создаем пустой список texts, в который будем записывать тексты. Потом пишем цикл, который будет выкачивать по 100 постов за каждую из 4-ех итераций, и записывать каждый пост в созданный список.

Посмотрим на то, как это выглядит в списке:
Ага, в тексте есть лишние символы, а точнее n. Это всего лишь разделитель: он показывает, что текст в данном месте в оригинале начинается с новой строки.

Шаг 3

Создаем в корневой папке на компьютере файл texts.txt, в который мы и запишем итоговый результат.

Шаг 4

Записываем посты из списка texts в файл texts.txt. И заменим символы n в тексте на нормальные разделители строки.

Поздравляем, вы стали счастливым обладателем сборника страдальческих студенческих хокку!
В туториале показаны основы работы в ВКонтакте API с помощью Python. На деле ВК может предоставить намного больше: можно искать пользователей по заданным критериям, скачивать фотографии и ещё кучу всего интересного. Главное теперь — не бояться обилия методов в документации и искать то самое, что нужно именно вам.

Как получить auth_key доступ VK API

В настоящее время многие сайты, социальные сети и поисковые системы предоставляют разработчикам доступ к собственным библиотекам API функций. API функции позволяют взаимодействовать с серверами тех или иных ресурсов, и чаще всего используются при написании программ, игр, сайтов и других приложений.

Что такое VK API?

API социальной сети VK предоставляет разработчикам довольно большой спект возможностей. К основым из них относятся:

  • Получение информации о пользователях социальной сети
  • Получение информации из базы данных VK
  • Управление пользователями групп и сообществ
  • Управление рекламными компаниями
  • Управление фото и видео

В общей сложности программисты и разработчики приложений могут использовать более 550 различных функций. Такой богатый набор функций предлагает широкие возможности для автоматизации взаимодействия с социальной сетью VK. С помощью API вы сможете развивать свой проект и расширить охват аудитории, в которую можно включить пользователей самой популярной социальной сети на просторах СНГ.

Полный список методов вы сможете получить, перейдя по адресу – https://vk.com/dev/methods

Для работы со всеми API функциями VK нужно выполнить несколько важных шагов, но основной из них это получение уникального идентификатора (ID), который позволит вам получать нужную информацию и взаимодействовать с серверами VK. Ниже мы подробно описали процесс регистрации и получения нужного вам ID.

Получение ID для работы с API фукциями VK

Первое что вам нужно сделать – это открыть страницу для разработчиков приложений взаимодействующих с VK. Она расположена по адресу – https://vk.com/dev.

Для того чтобы продолжить, убедитесь что у вас есть аккаунт в социальной сети VK и вы в него вошли. После этого переходите в раздел «Мои приложения».

Вы попадете в панель управления приложениями. Далее выберите пункт «Создать».

Вы попадете в меню создания приложения, которое выглядит как на изображении ниже.

Здесь вы должны ввести название приложения, выбрать платформу, и указать дополнительные параметры.

В типе платформы выберите «Сайт», это позволит вам использовать API при разработке сайта. Далее вам следует указать его адрес.

Указав нужную информацию, вы должны будете подтвердить свои действия с помощью звона или СМС.

Если вы не дождались звонка в течении двух минут, то сможете выбрать отправку СМС с нужным вам кодом.

Введите полученный код, и вы успешно создадите своё приложение. Далее вам осталось перейти в его настройки.

В этом разделе вы увидите свой VK API ID. В дальнейшем вы сможете использовать его при взаимодействии с серверами VK.

Далее вы можете добавить ID в ссылку

После чего получить желаемый ключ

По своему желанию вы можете добавить дополнительную информацию, касающуюся вашего приложения, хотя это и не обязательно.

Как видите получить доступ к обширному набору API функций для взаимодействия с VK довольно просто, и займет у вас пару минут, а широкие возможности помогут вам в развитии проекта любой сложности.

Как работать с vk API вконтакте

Здравствуйте, уважаемые читатели блога LifeExample, у многих из нас есть собственная страница в социальной сети вконтакте, все мы знаем, что каждый пользователь вконтке имеет возможность оставлять комментарии на стене других пользователей и различных сообществ. Сегодня я хочу показать вам как можно работать с данными этого сервиса, через предоставляемый вконтактом инструмент vk api , а именно как с помощью PHP получить все сообщения любого пользователя и его друзей.

Также в статье будет рассказано, как без использования API вконтакте осуществить автоматическую отправку текста на стену группы.

Создание приложения для получения доступа к vk API

Нас будет интересовать обращение по HTTP протоколу к адресу http://api.vk.com/api.php . На него мы будем высылать команды с определенными параметрами, а в ответ получать какие либо данные, предоставляемые сервисом вконтакте.

Самым первым делом необходимо создать новое приложения в VK.com, поскольку для работы с vk API надо иметь на это специальную подпись. Кроме того надо проштудировать всю информацию представленную в документации сервиса

Внимание! Если нам нужно только обращаться со своего сайта к API, и при этом мы совершенно не думаем о каких либо приложениях для мобильных телефонов, или декстопных приложениях,то все равно придется зарегистрировать его во вконтакте.

Чтобы создать свое приложение нужно перейти к форме создания приложения вконтакте и заполнить все необходимые поля:

После заполнения сохраняем введенные значения и получаем интересующие нас данные: id приложения и секретный ключ . Используя их мы в дальнейшем сможем работать с vk API.

После регистрации своего приложения мы сможем управлять настройками приложения созданного приложения

После этого нам потребуется класс для работы с vk API для этого скачиваем php библиотеку прямо с vk.com.

Права приложения

Для доступа к данным пользователя, приложение должно обладать набором соответствующих прав.

Предварительно, перед началом использования vkapi.class.php, надо разобраться, с тем как нашему созданному приложению, получать права для работы с тем или иным пользователем.

По умолчанию права созданного приложения — минимальны, и их не достаточно даже для того чтобы получить список друзей указанного пользователя, не говоря уже об оставлении записей на его стене.

Для всех приложений, api вконтакте предоставляет таблицу битовых масок, другими словами набор прав для приложения.

Советую вам самостоятельно ознакомиться с перечнем прав и их битовых масок.

Если Вы хотите получить права на «доступ к друзьям» и «доступ к обычным и расширенным методам работы со стеной», то ваша битовая маска будет равна: 2 + 8192 = 81924.

Если, имея битовую маску 81924, вы хотите проверить, имеет ли она доступ к расширенным методам работы со стеной, то можете сделать это таким образом:

Если права подтверждены, то 81926 & 81924 даст результат = 8192, иначе =

Чтобы web-приложение запросило разрешение на те или иные права, нужно дать пользователю ссылку специального формата:

  • APP_ID – идентификатор вашего приложения;
  • SETTINGS – запрашиваемые права доступа приложения;
  • REDIRECT_URI – адрес, на который будет передан code. Этот адрес должен находиться в пределах домена, указанного в настройках приложения.

Перейдя по такой ссылке, пользователю, будет предложено авторизоваться на vk.com и подтвердить разрешение на запрашиваемые нашим приложением права.

В моем случае ссылка будет выглядеть таким образом:

Параметром scope , я запрашиваю у пользователя разрешение на использование всех имеющихся данных, перечислив все известные идентификаторы прав.

После подтверждения, vk api высылает назад на указанный redirect_uri код, по которому мы сможем в течении часа получать access_token чтобы работать с API вконтакте.

Закончив процесс получения разрешения, от пользователя на доступ к его информации, мы можем начинать работу с API вконтакте, а именно с классом vkapi.class.php

PHP Пример работы с API vkontakte

$api_id = 4471324 ;
$secret_key = ‘Y1fXgdIl3aPiejBHO4g’ ;

//получить битовую маску приложения для конкретного пользователя
$resp = $VK -> api ( ‘getUserSettings’ , array ( ‘uid’ => ‘150317299’ ) ) ;
echo verRoles ( $resp [ ‘response’ ] ) ;

Результат работы скрипта должен вывести информацию о правах приложения по отношению к пользователю с id=’150317299′ . Получить битовую маску прав приложения можно командой getUserSettings .

Как видите скрипт вывел перечень доступных прав исходя из значения битовой маски. По умолчанию для каждого нового пользователя битовая маска будет равна 0, пока посетитель сайта не перейдет по указанной ссылке «Разрешить приложению Moguta работать с моими данными из VK».

Подтвердив разрешение, пользователь даст нам возможность работать с его данными и мы сможем, выполнить несколько полезных в разных задачах методов, например.

Получить список друзей пользователя:

Получить список последних сообщений на стене пользователя

Получение лайков с указанной страницы.

Весь перечень доступных для vk Api методов перечислен в этом разделе документации

И в конце статьи хочу указать на одну огромную неприятность, о которой сказано в описании права wall отвечающего за работу со стеной.

Внимание, данное право доступа недоступно для сайтов (игнорируется при попытке авторизации).

Это значит, что автоматический репост сообщений на стену из веб-приложений запрещен и можно даже не пытаться делать авторепост новостей в группу средствами API вконтаке. Данный факт несколько огорчил меня, поскольку все, что мне было надо от vk api это отправлять новость с сайта moguta.ru в группу автоматически.

Читайте также  Как отключить перезагрузку

Тем не менее, нет ничего невозможного, если контакт не разрешает делать это своими инструментами, пойдем в обход.

Автопостинг на стену вконтакте без vk api

В сети я нашел полезный в данной задаче класс vk_poster.class.php:

Данный класс позволяет репостить на стену контакта, с помощью php библиотеки CURL. Получив необходимые для авторизации данные этот класс эмитирует действия пользователя, как будто тот авторизуется в vk.com переходит на указанную стену, и отправляет сообщение от своего имени.

Т.е. весь репост сводится к использованию CURL без API vk. Из минусов данного подхода, только не высокая скорость работы приложения, поскольку нужно в несколько этапов отправлять последовательность HTTP запросов, чтобы осуществить публикацию информации на стене сообщества, либо конкретного пользователя.

Кроме этого способа можно воспользоваться замечательной программой imacros, которая может повторить любое действие человека, но выбирать ее или нет , это зависит от конкретной задачи.

Пример использования VK API в Python

Хочу поделиться опытом, как я использовал Питона в одном из своих проектов по рекламе в VK. Для тех кто не в курсе, Питон — это такой язык программирования.

Данная статья может пригодиться тем, кто учится программировать на Питоне или занимается рекламой в VK.

Описание задачи и пути решения

Мне потребовалось найти VK-группы в заданном городе по нескольким ключевым словам, чтобы запустить на них рекламу. Эти группы нужно было где-то сохранить, чтобы не искать каждый раз по новой.

По каждой группе мне важна следующая информация:

  • id — чтобы использовать в рекламе;
  • name — чтобы оценить подходит группа или нет (Например, для ключевого слова «ремонт» может быть ремонт квартир или ремонт машин);
  • members_count — чтобы оценить размер группы;
  • contacts — чтобы получить список id пользователей, на которых не следует давать рекламу;
  • группы должны быть отсортированы по отношению дневной посещаемости к количеству пользователей — чтобы не использовать группы, которые никто не посещает.

Сначала, я начал искать группы используя стандартный поиск. Но это оказалось очень не быстро. На пятой группе я призадумался о более быстром способе.

Более быстрый способ оказался VK API через браузер. В документации VK https://vk.com/dev/manuals подробно написано, как это делать.

В конечном итоге, я решил использовать VK API в Python, чтобы решать подобные задачи за секунды.

Как использовать VK API через браузер

Для работы с VK API через браузер, прежде всего, необходимо получить так называемый access_token.

Делается это очень просто. Нужно просто указанный ниже код вставить в адресную строку браузера.

После успешной авторизации ваш браузер будет перенаправлен на другую страницу, а ключ доступа к VK API будет передан в качестве фрагмента URL-ссылки. Смотрите пример ниже. Ключ выделен жирным.

Полученный ключ доступа следует сохранить в надёжном месте. Он будет использоваться при каждом запросе к методам API. Заменяйте ключ из примера своим ключом, чтобы всё работало.

Метод database.getCities

Этот метод я использовал, чтобы получить код (id) города, в котором искать нужные мне группы. Привожу для примера свой запрос. Вам нужно будет поменять ключ доступа access_token и город q на свой.

В случае успешного запроса будет выдан следующий ответ:

Как видно из примера, id города равен 24. Будем использовать это номер в качестве параметра city_id при вызове следующего метода.

Метод groups.search

Этот метод я использовал, чтобы получить id групп соответствующих запросу по ключевому слову. В нижеприведённом примере нужно будет заменить аргументы access_token, city_id и q на соответствующие ваши.

Успешный ответ может быть очень большим. Поэтому привожу его для примера в сокращенном виде.

Это пример выводе первой группы, а всего их может быть до 500. Группы сортируются по отношению дневной посещаемости к количеству пользователей (sort=2).

Ответ получен в формате json. Этот формат не очень удобен в данном случае. Поэтому его нужно преобразовать в формат csv. Для этого копируем текст ответа (Ctrl+A, Ctrl+C), и используем какой-нибудь онлайн-конвертер. Например, этот http://www.convertcsv.com/json-to-csv.htm.

Ответ вставляем в верхнее поле (Ctrl+V), как на рисунке ниже, и нажимаем кнопку «Convert JSON To CSV». Результат можно скачать с помощью кнопки «Download Result».

Открыть полученный файл можно с помощью Excel.

На данном этапе нас интересует только первый столбик id. Нам нужно получить его в виде значений разделённых запятыми, чтобы использовать затем в качестве аргумента при вызове следующего метода VK API.

Я получаю его следующим способом. Копирую все значения столбика id. Затем вставляю его в новый файл используя Вставить Как… с опцией «Транспонировать». То есть преобразую столбец таблицы в строку. Теперь сохраняю этот файл формате csv.

Полученный файл можно открыть с помощью Блокнота. Там будет текст следующего вида:

Данный текст мы копируем, чтобы использовать в качестве аргумента group_ids при вызове следующего метода.

Метод groups.getById

Этот метод я использовал, чтобы получить список групп города соответствующих запросу со всеми необходимыми по условию данными. Пример запроса ниже.

Ответ будет получен, как обычно, в формате json. Его нужно будет преобразовать в формат csv, способом описанным выше.

Для сохранения порядка сортировки групп по отношению дневной посещаемости к количеству пользователей, я в полученный csv-файл добавил столбец ‘sort2’ , в котором последовательно пронумеровал все строки. Образец файла ниже.

Учитывая, что подобную задачу приходится решать практически в каждом проекте, было решено реализовать это с помощью программирования.

Как использовать VK API в Python

Реализация описанного выше алгоритма на Python-е оказалась проще, чем я ожидал. От начала программирования до рабочей версии программы прошло около 40 минут. Получается, если бы я сразу начал программировать, то всё получилось бы быстрее часа на два. Это даже несмотря на то, что пришлось тратить время на изучение самого языка.

Для реализации взял первую попавшуюся библиотеку для работы с VK в Python-е. Установил её следующей командой:

Ключ «—user» я использовал, чтобы избежать ошибок с разрешениями. У меня Linux, а ключ позволяет установить пакет только для текущего пользователя.

С самого начала была задача сделать как можно быстрее и проще, поэтому для реализации была выбрана консольная версия, где параметры задаются внутри кода. Таким образом, программа начинается с определения параметров.

Следующим этапом было подключиться к VK API. Тут всего две строчки, но на них я застрял минут на 20. Сразу не понял как работает библиотека. Здесь соответственно мой access_token нужно поменять на ваш.

Дальше просто идёт реализация алгоритма описанного выше. В конце я дам полный листинг программы. А по ходу просто буду пояснять отдельные моменты реализации.

Получение кода города:

Метод database.getCities возвращает Словарь (dict), в котором под ключом ‘items’ хранится список городов, которые соответствуют ключевому слову запроса. Обратите внимания, что переменной Cities я присваиваю уже этот список, а не весь Словарь.

Вот ещё интересная реализация получения списка id групп методом
groups.search:

Эта конструкция называется «Генерация списка». Такое, по-моему есть только в Python-е. Схематично конструкция выглядит так:

Очень мне понравилась эта конструкция. При реализации через браузер на эту операцию уходило больше всего времени. А тут одной строчкой. Классно.

Ещё мне понравилась реализация работы с csv-файлами методом DictWriter. Сначала задаётся заголовок…

А затем целая группа сохраняется в файл одной строчкой:

В целом, остальное должно быть понятно без слов. Просто привожу листинг.

Если что-то непонятно, то пишите в комментариях. Буду подробно отвечать

Пути развития программы

Программа полностью выполняет свою задачу. Но это не значить, что её нельзя сделать лучше. Я здесь вижу несколько направлений развития.

Классическое консольное приложение

Задавать параметры в коде программы вполне приемлемый способ для программиста. Однако, для простого пользователя — это слишком. Не мудрено ненароком испортить программу. Поэтому лучше реализовать передачу параметров через командную строку, как в классическом консольном приложении.

Контакты в отдельный файл

Контакты групп часто нужны, чтобы не показывать на них рекламу. Для этого нужно собрать id всех пользователей из контактов в отдельный файл. В текущей реализации это придётся делать вручную. Между тем добавить такой функционал совсем несложно и займёт минут 15.

Расширение функционала

По мере необходимости можно расширять функционал программы. Например, добавить возможность извлекать пользователей — членов групп и делать их пересечение. Строить списки пользователей, которые состоят в 2-х группах и тому подобное. Пока такой необходимости не было, но если понадобится, то дописать код будет гораздо быстрее, чем делать всё вручную.

Графический или WEB интерфейс

Если будет такой запрос, то можно добавить графический или веб интерфейс и обработку ошибок. Для своих внутренних нужд, я вряд ли буду это делать. Но, если будет такой запрос, то почему бы и нет.

Пишите в комментариях, какое ещё развитие программы вы хотели бы видеть.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: