Api vk com что это

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

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

Иллюстрация на тему VK Api: описание интерфейса, примеры работы, документация

Что такое API

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

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

API для начинающих. Пример VK. [1/5]

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

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

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

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

Иллюстрация на тему VK 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. Пройдя по ней, нужно кликнуть по кнопке «Создать приложение».

Иллюстрация на тему VK Api: описание интерфейса, примеры работы, документация

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

Иллюстрация на тему VK Api: описание интерфейса, примеры работы, документация

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

Еще по теме:  Как искать людей Вконтакте на Айфоне

Иллюстрация на тему VK Api: описание интерфейса, примеры работы, документация

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

Иллюстрация на тему VK Api: описание интерфейса, примеры работы, документация

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

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

Иллюстрация на тему VK Api: описание интерфейса, примеры работы, документация

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

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

Источник: greatchat.ru

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

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

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

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

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

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

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

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

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

создание приложения API в вконтакте.jpg

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

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

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

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

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

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

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

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

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

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

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

echo 81926

Если права подтверждены, то 81926
scope=SETTINGS
response_type=code

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

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

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

< a href = «https://oauth.vk.com/authorize?
client_id=3471327
redirect_uri=http://moguta.ru/ > Разрешить приложению Moguta работать с моими данными из VK < / a >

Параметром 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».

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

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

//получить друзей
$resp = $VK -> api ( ‘friends.get’ , array ( ‘uid’ => ‘150317299’ ) ) ;

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

$resp = $VK -> api ( ‘wall.get’ , array ( ‘owner_id’ => ‘150317299’ ) ) ;

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

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

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

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

Нельзя отправлять сообщения на стену

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

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

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

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

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

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

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

Чтобы не пропустить публикацию следующей статьи подписывайтесь на рассылку по E-mail или RSS ленту блога.

Источник: lifeexample.ru

Используем VK.com в своих целях: 5 готовых рецептов

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

В условиях, когда своего сервера нет, а чужой предлагает только тестовый нестабильный ключ, не позволяющий запустить приложение в большое плавание, VK.com представляется просто идеальным вариантом. И никакой головной боли с надежностью сервера и оплатой хостинга ;).

Возможности родного Вконтактика

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

Главное — правильно замаскировать содержимое от охотников за нелицензионным контентом (шифрование файлов или их названий). Впрочем, я уверен, что ты не какой-нибудь пират и в таких мерах защиты своего контента не нуждаешься ;). Если просуммировать, то с помощью VK мы можем сделать:

  • новостное приложение;
  • онлайн-кинотеатр;
  • онлайн MP3-плеер;
  • собственный фотосервер;
  • убийцу Google Docs — MyVKDoc!

Теория VK API

Описание методов VK API ты найдешь по адресу.
Методы, требующие авторизации, для нашего бэкенда не очень удобны — пользователи вообще не любят, когда их лишний раз о чем-то спрашивают. Для того чтобы быстро забрать какую-либо информацию, в VK API есть метод wall.get. Он возвращает список записей со стены пользователя или сообщества. Самое замечательное в том, что это открытый метод, не требующий access_token.

Еще по теме:  Vk капсула мини функции

То есть, если стена открытая, читать ее может кто угодно. Это то, что нужно для клиентского приложения!

Работаем с VK API через Android

C VK API можно работать как с помощью обычных POST- и GET-запросов, так и через андроид-приложение, в чем нам, как обычно, поможет Android SDK. С его помощью можно загрузить на сервер VK файлы и делать публикации на стены (метод VKApi.wall().post).

Выдержка из официальной документации: подготовка к использованию

Перед началом работы с VK SDK необходимо создать Standalone-приложение на странице создания приложения. Сохрани ID твоего приложения и заполни поля «Название пакета для Android»,«Main Activity для Android», «Отпечаток сертификата для Android».

C ключами и Standalone-приложением все ясно, остается один нюанс: пользователь, от имени которого мы будем публиковать записи на стену, должен обладать в этой группе нужными правами. Настраивается это в разделе «Управление сообществом → Участники». Приложение при первом запуске также должно запросить права (к примеру, VKScope.WALL, VKScope.DOCS). Они указываются в методе VKSdk.login().

Запрос из официального приложения

Другие статьи в выпуске:

Xakep #210. Краткий экскурс в Ethereum

  • Содержание выпуска
  • Подписка на «Хакер» -60%

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

Затем нас ждет следующее препятствие — загрузить на стену группы можно не более 50 постов в день:

API errorVKError (code: 214; ; Access to adding post denied: you can only add 50 posts a day

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

Не так быстро, парень!

У меня она вылезла после 20 загруженных подряд документов. Алгоритм появления капчи разработчики не расскажут нам ни по дружбе, ни за деньги, ни под пытками. Опытным путем я выяснил, что достаточно безопасным будет добавлять новую запись каждые 29 минут. От такой колоссальной скорости капча проснуться не должна, и в лимит в 50 загрузок в сутки мы тоже уложимся.

Новостное приложение

Обычно при публикации новостей ставят текст и картинки. Для загрузки картинок используем метод
VKApi.uploadWallPhotoRequest. После загрузки сервер вернет нам данные, нужные для метода публикации записи на стене VKApi.wall().post.

VKRequest post = VKApi.wall().post(VKParameters.from(VKApiConst.OWNER_ID, «-» + TARGET_GROUP, VKApiConst.ATTACHMENTS, attachments, VKApiConst.MESSAGE, message));

Параметр attachments получаем в ответе на VKApi.uploadWallPhotoRequest.

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

Онлайн MP3-плеер

Тут нам поможет метод VKApi.audio().getUploadServer() — с его помощью мы получим сервер для загрузки. Потом, как и с видео, нужно загрузить файл POST-запросом, поле file должно содержать файл в формате MP3. В ответ приложение получает данные server, audio и hash в виде JSON:

С помощью метода VKApi.audio().save() приложение передает серверу полученные данные (server, audio и hash) и получает данные о загруженной аудиозаписи.

Собственный фотосервер

Картинки можно загружать без POST-запросов простыми методами VKApi.uploadWallPhotoRequest и VKApi.uploadAlbumPhotoRequest. Названия говорят сами за себя. Для собственного «инстаграма» VKApi.uploadAlbumPhotoRequest более предпочтителен, так как фотографии нужно размещать по альбомам, а не скидывать их на стену в живописном хаосе.

VKRequest request = VKApi.uploadWallPhotoRequest(VKUploadImage image, int user_id, int group_id); VKRequest request = VKApi.uploadAlbumPhotoRequest(VKUploadImage image, int album_id, int group_id); VKRequest request = VKApi.uploadWallPhotoRequest(File image, int user_id, int group_id); VKRequest request = VKApi.uploadAlbumPhotoRequest(File image, int album_id, int group_id);

При загрузке фото на свою стену или стену группы user_id == 0, иначе — id пользователя, на стену которого будем загружать фото.
При загрузке фото на стену или в альбом группы group_id == id целевой группы, иначе group_id == 0 (например, загрузка фото в свой альбом). В album_id, соответственно, — идентификатор фотоальбома.

MyVKDoc

Заключение

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

Источник: xakep.ru

Рейтинг
( Пока оценок нет )
Загрузка ...