Api вконтакте что это

Описание и примеры работы с API ВКонтакте

Телеграм-канал Программист и бизнес.
Каждый день интересные истории, как программист строит бизнес.

Эта статья не для программистов (они и так уже всё это знают), а для тех, кто только подходит к теме программирования. Или для тех, кто просто услышал термин VK API, и хочет понимать, что это такое.

Api вконтакте что это. Смотреть фото Api вконтакте что это. Смотреть картинку Api вконтакте что это. Картинка про Api вконтакте что это. Фото Api вконтакте что это

Что такое API

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

Этих программ (скриптов, как их называют программисты) может быть очень много, и они должны взаимодействовать друг с другом. Для этого разработаны специальные правила и протоколы, следуя которым, отдельные скрипты имеют возможность отвечать на вызовы и получать ответы от других. В результате всё огромное множество разнообразных скриптов работает как единое целое.

Совокупность этих правил и составляет единый интерфейс взаимодействия со сложной программной системой. Его называют API – Application Programming Interface.

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

Чем же этот механизм может быть полезен простому программисту, который не состоит в штате компании Вконтакте и хочет просто написать какой-нибудь полезный скрипт для себя?

Api вконтакте что это. Смотреть фото Api вконтакте что это. Смотреть картинку Api вконтакте что это. Картинка про Api вконтакте что это. Фото Api вконтакте что это

Где найти документацию по VK Api

Соцсеть в своей документации предлагает подробное описание своего API для сторонних разработчиков. Главная страница этой документации располагается вот здесь: https://vk.com/dev/manuals. Тут описаны программные объекты и их методы, перечень возвращаемых кодов и ошибок, права доступа, шаблоны запросов и так далее.

Программист, желающий разработать какое-либо приложение (подключаемое внутри ВК либо работающее на отдельном сайте) может в коде своей программы предусмотреть вызовы методов ВК, используя эти самые правила взаимодействия API. Это даст возможность обращаться к функционалу социальной сети Вконтакте. Например, можно получать список подписчиков того или иного сообщества, делать массовые рассылки сообщений, публиковать новые записи, и так далее. Возможности здесь очень широкие. Именно на возможностях API ВК основаны многие полезные приложения. Например, музыкальные плееры для проигрывания музыки из страниц друзей, разнообразные игры, счётчики «Мои гости», альтернативные мобильные клиенты, такие как VK Settings, VK Coffee, Kate Mobile и так далее.

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

Примеры работы API VK на PHP

Сначала нужно создать новое приложение, которое будет подключаться к ВК. Это делается на странице по ссылке https://vk.com/apps?act=manage. Пройдя по ней, нужно кликнуть по кнопке «Создать приложение».

Api вконтакте что это. Смотреть фото Api вконтакте что это. Смотреть картинку Api вконтакте что это. Картинка про Api вконтакте что это. Фото Api вконтакте что это

Далее нужно выбрать тип создаваемого приложения: встраиваемое, отдельное (stand-alone), или на сайте. Если выбираете последний вариант, то нужно будет ввести адрес сайта и базовый домен.

Api вконтакте что это. Смотреть фото Api вконтакте что это. Смотреть картинку Api вконтакте что это. Картинка про Api вконтакте что это. Фото Api вконтакте что это

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

Api вконтакте что это. Смотреть фото Api вконтакте что это. Смотреть картинку Api вконтакте что это. Картинка про Api вконтакте что это. Фото Api вконтакте что это

Теперь можно начинать программирование функции авторизации пользователя. Её код может быть таким:

Api вконтакте что это. Смотреть фото Api вконтакте что это. Смотреть картинку Api вконтакте что это. Картинка про Api вконтакте что это. Фото Api вконтакте что это

Этот код выводит на экран ссылку для открытия окна авторизации пользователя.

А этот код получает универсальный токен доступа access_token:

Api вконтакте что это. Смотреть фото Api вконтакте что это. Смотреть картинку Api вконтакте что это. Картинка про Api вконтакте что это. Фото Api вконтакте что это

Программисты, знакомые с языком PHP увидят, что этот код, используя параметры «ID приложения» и «Защищённый ключ», обращается к специальной утилите oauth.vk.com, которая возвращает токен доступа. Он необходим для успешной авторизации пользователя.

Изучение работы с API Вконтакте может занять немало времени, так как он предлагает много объектов и методов. Но усилия стоят того – появится возможность писать любые приложения и игры, использующие движок ВК. Причём нет никакой разницы, на каком языке вы будете это делать – PHP, Pithon, JavaScript, C# или любой другой. Программному интерфейсу это безразлично, нужно только, чтобы соблюдались правила составления и отправки запросов.

Источник

Api вконтакте что это

Чтобы обратиться к методу API ВКонтакте, Вам необходимо выполнить POST или GET запрос такого вида:

Например, вызовем метод users.get для пользователя с идентификатором 210700286:

К методам API ВКонтакте (за исключением методов из секций secure и ads) с ключом доступа пользователя можно обращаться не чаще 3 раз в секунду. Для ключа доступа сообщества ограничение составляет 20 запросов в секунду. Если логика Вашего приложения подразумевает вызов нескольких методов подряд, имеет смысл обратить внимание на метод execute. Он позволяет совершить до 25 обращений к разным методам в рамках одного запроса.

Для сервисного ключа доступа лимиты такие:

Кол-во пользователей приложенияЧастотный лимит (кол-во запросов в секунду)
до 10 0005
до 100 00020
до 500 00040
до 1млн50
больше 1млн60

Для методов секции ads действуют собственные ограничения, ознакомиться с ними Вы можете на этой странице.

Максимальное число обращений к методам секции secure зависит от числа пользователей, установивших приложение. Если приложение установило меньше 10 000 человек, то можно совершать 5 запросов в секунду, до 100 000 — 8 запросов, до 1 000 000 — 20 запросов, больше 1 млн. — 35 запросов в секунду.

Если Вы превысите частотное ограничение, сервер вернет ошибку с кодом 6: «Too many requests per second.».

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

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

Запросы к API ВКонтакте могут быть выполнены из браузера со страниц сторонних сайтов или IFrame приложений.
Чтобы осуществлять кроссдоменные запросы к API, Вы можете использовать протокол JSONP. Для этого необходимо подключать к документу скрипт с адресом запроса в src. Запрос должен содержать дополнительный параметр callback c именем функции, которая будет вызвана при получении результата.

Источник

Правильный подход к использованию API Вконтакте

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

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

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

Пример кода, с помощью которого можно провернуть это не хитрое дело.

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

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

При использовании библиотеки нам необходимо создать базовый объект, например так:

Пара примеров запросов с использованием библиотеки:

Через анонимную функцию в each, пройдёт ровно 100 объектов, содержащих данные о пользователях от 1 до 100. Заметьте, если мы уберём вызов функции, то не произойдёт никакого запроса, всё потому что вернётся объект, у которого переопределены магические методы __call и __get, что позволяет нам делать запрос, когда нам это действительно необходимо.

Одна из вещей, что открывает, нам использование генераторов — пакетное получение. То есть, мы получаем данные только тогда, когда они нам нужны. Следующий пример, позволит нам получить ВСЕ наши сообщения, запросами по 100. Будьте внимательны, метод требует от вас прав для messages, Standalone приложения, такой-же авторизации и соответственно передачи ключа доступа.

Хороший метод, который можно отыскать в API — execute. Он принимает параметр code в качестве аргумента, code — некий псевдо JavaScript, который позволяет нам выполнять наш код на стороне сервера, так-же он позволяет выполнять хранимые процедуры, которые мы можем создать при редактировании нашего приложения.

Эту вещь я не смог обойти стороной и реализовал её в библиотеке. В двух словах, она позволяет выполнить несколько запросов, как один. Смотрите следующий пример кода.

Как и обещал, одно из тех недоразумений, которое вы можете встретить в текущей версии API(5.21), метод users.get вернёт нам response, как массив, хотя в других местах, например friends.get, начиная с версии номер 5, нам возвращаются поля count и items, мне кажется это не совсем логичным, к тому же это требует лишнего кода при работе с API.

Так-же в библиотеке реализованы обработчики для некоторых операций, с вашей помощью их может стать больше.
С использованием библиотеки мы можем добиться довольно приятного и красивого кода, а это, самое важное в нашем не лёгком деле.
Вполне вероятно, что в коде остались какие-то недоразумения или баги, надеюсь на вашу внимательность и Pull Requests приветствуются.
Библиотека в большинстве своём отвечает стандарту PSR-0.

Надеюсь, мне удалось показать вам, что API Вконтакте не страшно, а даже приятно.

Благодарю за внимание!

UPDATE:
Можно установить через Composer: composer require «getjump/vk:*»

UPDATE 2:
Теперь минимальная версия 5.4, теоретически(по идее не используется большинство его функционала) может завестись и на 5.3, если не использовать короткий синтаксис для массивов.

Источник

Api вконтакте что это

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

API (application programming interface) — это посредник между разработчиком приложений и какой-либо средой, с которой это приложение должно взаимодействовать. API упрощает создание кода, поскольку предоставляет набор готовых классов, функций или структур для работы с имеющимися данными.

API ВКонтакте — это интерфейс, который позволяет получать информацию из базы данных vk.com с помощью http-запросов к специальному серверу. Вам не нужно знать в подробностях, как устроена база, из каких таблиц и полей каких типов она состоит — достаточно того, что API-запрос об этом «знает». Синтаксис запросов и тип возвращаемых ими данных строго определены на стороне самого сервиса.

Например, для получения данных о пользователе с идентификатором 210700286 необходимо составить запрос такого вида:

Ответ на наш запрос выглядит так:

Структура ответа каждого метода также строго задана, и при работе с API вы заранее знаете, что в поле id придет число, а в поле first_name — строка. Такие правила оговариваются на страницах с описанием метода и соответствующих объектов, которые он возвращает в ответе. Например, users.get — здесь описаны входные параметры метода и структура его ответа, а здесь — user подробно расписано каждое поле объекта из ответа.
Если вы уже имеете опыт работы с JSON, вам также может быть полезна информация о JSON схеме API ВКонтакте: JSON схема API ВКонтакте.
Объект из ответа может быть не уникален для конкретного метода. Например, объект пользователя с набором полей, содержащих данные о его образовании, возрасте, интересах, может возвращаться в ответе от методов users.get, users.search, groups.getMembers и еще нескольких.

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

Совет. Если вы пока не знаете, какую платформу выбрать, используйте Standalone-приложение. Мы обычно рекомендуем его для тренировки.

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

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

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

Мы воспользуемся самым простым способом (Implicit flow) и получим токен для работы с API из созданного вами на прошлом этапе приложения.

Откройте новую вкладку в браузере и введите в адресную строку такой запрос:

Число 5490057 в запросе нужно заменить на API_ID вашего приложения.

Нажмите Enter. Откроется окно с запросом прав. В нем отображаются название приложения, иконки прав доступа, и ваши имя с фамилией.

Нажмите «Разрешить». Вы попадете на новую страницу с предупреждением о том, что токен нельзя копировать и передавать третьим лицам. В адресной строке будет URL https://oauth.vk.com/blank.html, а после # вы увидите дополнительные параметры — access_token, expires_in и user_id. Токен может выглядеть, например, так:

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

Поле expires_in содержит время жизни токена в секундах. 86400 секунд — это ровно сутки. Через сутки полученный токен перестанет действовать, для продолжения работы нужно будет получить новый. Есть возможность получить токен без срока действия — для этого в scope добавьте значение offline. Вы можете принудительно отозвать токен (например, в том случае, если он стал известен постороннему), сбросив сеансы в настройках безопасности вашего аккаунта или сменив пароль. Также, если речь идет о токене не из вашего собственного приложения, можно просто удалить приложение из настроек: https://vk.com/settings?act=apps

Поле user_id содержит id пользователя, для которого получен токен.

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

Для этого введите в адресную строку:

и вставьте после знака «=» Ваш access_token, затем нажмите Enter. В ответе сервер вернет список идентификаторов ваших друзей, которые сейчас онлайн. Почитать подробнее о работе этого метода можно здесь. Заметьте, вы не указали в запросе, для какого пользователя (user_id) нужно получить список — сервер использовал значение по умолчанию, т.е. ваш идентификатор, который он получил из токена.

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

Как вы уже знаете, все методы делятся на секции — friends, photos, video и так далее. Каждая секция соответствует определенному разделу на сайте. Часто приложения создаются для работы с конкретным разделом. Например, для просмотра фотографий или для редактирования видео. При этом логично, что приложению, которое работает только с аудиозаписями пользователя, не нужен доступ одновременно и к его личным сообщениям.

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

Чтобы запросить права, используйте параметр scope диалога авторизации. Когда вы получали токен для своего приложения, в scope было указано значение friends — и в окне авторизации приложение запросило доступ к друзьям.

У каждого права доступа есть уникальное название («friends», «video» и т.д.) и код (+2, +4, +4096).
В scope можно перечислить названия нужных прав доступа (например, scope=friends,video,photos), а можно указать сумму их кодов (например, scope=22). Каждый код представляет собой степень двойки, и полученную таким образом сумму (битовую маску) вы всегда можете проверить на предмет содержания какого-то конкретного кода (см. account.getAppPermissions).

Некоторые права доступа из соображений безопасности можно запрашивать только в Standalone-приложениях и только в процессе авторизации Implicit Flow, обратите на это внимание.

Вы познакомились с основными понятиями, связанными с API ВКонтакте. Дальше все зависит лишь от вашего вдохновения.

Конечно, на практике никто не работает с API из соседней вкладки браузера. Для этого используют самые разные языки программирования, SDK, генераторы кода. Сам механизм работы с API весьма прост, средства для отправки http-запросов и обработки ответа от сервера предусмотрены практически в любой среде разработки: а значит, возможность выбора всегда есть.

Источник

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

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

ВК-API блиц

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

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

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

Создав приложение и перейдя на вкладку настроек, будет показано: id приложения, секретный ключ
Api вконтакте что это. Смотреть фото Api вконтакте что это. Смотреть картинку Api вконтакте что это. Картинка про Api вконтакте что это. Фото Api вконтакте что это

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

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

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

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

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

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

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

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

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

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

Теперь нужно определиться с передаваемыми параметрами (PARAMS). Все доступные, обязательные параметры с описанием можно посмотреть на странице метода.
Api вконтакте что это. Смотреть фото Api вконтакте что это. Смотреть картинку Api вконтакте что это. Картинка про Api вконтакте что это. Фото Api вконтакте что это
Я буду передавать owner_id который соответствует id моего пользователя.

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

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

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

В итоге, получаем обычный массив записей, который можем обработать как пожелаем
Api вконтакте что это. Смотреть фото Api вконтакте что это. Смотреть картинку Api вконтакте что это. Картинка про Api вконтакте что это. Фото Api вконтакте что это

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

Резюме

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

Get the latest posts delivered right to your inbox

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *