No Image

Что такое работа с api вконтакте

СОДЕРЖАНИЕ
0 просмотров
22 января 2020

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

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

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

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

Рассмотрим отдельно все его составляющие.

  • https:// — протокол соединения.
  • api.vk.com/method — адрес API-сервиса.
  • users.get — название метода API ВКонтакте. Методы представляют собой условные команды, которые соответствуют той или иной операции с базой данных — получение информации, запись или удаление. Например, users.get — метод для получения информации о пользователе, video.add — метод для добавления видеозаписи в свой список, likes.delete — метод для удаления отметки «Мне нравится».

Все методы разделены на секции. Например, для работы с сообществами Вам нужны методы секции groups, для работы с фотографиями — photos, и так далее. Полный список методов по секциям доступен на этой странице.

  • ?user_ >
  • В ответ сервер вернет JSON-объект с запрошенными данными (или сообщение об ошибке, если что-то пошло не так). JSON — это формат записи данных в виде пар «имя свойства»: «значение». Если Вы раньше не встречались с этим форматом, мы рекомендуем познакомиться с ним, прежде чем продолжить чтение: JSON, Wikipedia

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

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

    В нашем примере был использован метод users.get, для вызова которого достаточно лишь указать его входные параметры. Но чаще всего этого будет мало. Вам необходимо зарегистрировать свое приложение, чтобы использовать все возможности API ВКонтакте.

    Откройте страницу «Управление» в левом меню, затем нажмите «Создать приложение» — Вы попадете на страницу https://vk.com/editapp?act=create

    Нужно выбрать один из трех типов приложений:

    • Standalone-приложение — это API_ID для мобильного или десктопного клиента, внешнего сайта, где работа с API будет вестись из Javascript. Основная мысль в том, что запросы к API должны осуществляться с устройства пользователя. В интерфейсе приложения с таким типом доступны настройки SDK и подключение сертификатов для push-уведомлений.
    • Веб-сайт — регистрация API_ID для внешнего сайта и работы с API с сервера. Например, если Вы хотите написать скрипт на PHP с использованием API ВК, Вам нужен именно этот вариант.
    • IFrame/Flash приложение — это те самые приложения, которые Вы можете видеть в нашем каталоге https://vk.com/apps. Они загружаются непосредственно на сервер ВКонтакте (Flash) или встраиваются во фрейме с внешнего сайта.

    Если Вы пока не определились, какое приложение хотите создать, выберите первый тип ("Standalone").

    После подтверждения действия Вы попадете на страницу с информацией о приложении. Откройте вкладку «Настройки» в меню слева. Вы увидите поле "ID приложения", в котором будет указано число, например, 5490057. Это число — идентификатор приложения, он же API_ID, APP_ID, client_id, оно потребуется Вам в дальнейшей работе.

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

    В 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,v >
    Некоторые права доступа из соображений безопасности можно запрашивать только в приложениях с типом Standalone и только в процессе авторизации Implicit Flow, обратите на это внимание.

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

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

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

    Что такое API

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

    Читайте также:  1С количество элементов справочника

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

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

    Взаимодействие программных модулей именно через библиотеку 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. Пройдя по ней, нужно кликнуть по кнопке «Создать приложение».

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

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

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

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

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

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

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

    Здравствуйте, уважаемые читатели блога 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’ ] ) ;

    Результат работы скрипта должен вывести информацию о правах приложения по отношению к пользователю с >. Получить битовую маску прав приложения можно командой 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, которая может повторить любое действие человека, но выбирать ее или нет , это зависит от конкретной задачи.

    Комментировать
    0 просмотров
    Комментариев нет, будьте первым кто его оставит

    Это интересно
    No Image Компьютеры
    0 комментариев
    No Image Компьютеры
    0 комментариев
    No Image Компьютеры
    0 комментариев
    No Image Компьютеры
    0 комментариев
    Adblock detector