Взаимодействие приложений с API
Стандартное взаимодействие приложений с API ВСети происходит следующими способами:- Для Flash приложений Вы можете использовать метод APIConnection.api
- Для IFrame приложений Вы можете использовать метод VS.api
Во всех остальных случаях Вы можете производить запросы к API ВСети путем создания HTTP-запроса (POST или GET) к адресу API-сервиса http://vseti.by/api.php.
Сервер принимает не более трёх запросов в секунду, содержащих одинаковые параметры api_id и viewer_id. То есть запущенное конкретным пользователем приложение не должно отправлять более трёх запросов в секунду, в противном случае сервер возвращает ошибку "Too many requests per second".
Какие параметры необходимо передавать при запросе?
идентификатор приложения, присваивается при создании. | ||
название метода API из общего списка функций. | ||
подпись, которая создается в целях безопасности. Порядок создания подписи описан ниже. | ||
идентификатор сессии, полученный ранее при авторизации, либо посредством flashVars/GET запроса. Обратите внимание, что этот параметр не учитывается при создании подписи. |
- При осуществлении запроса с серверной стороны параметр sid передавать не нужно.
- Обратите внимание, что sid привязан к ip адресу, поэтому Вы не сможете использовать его на сервере.
Как создавать подпись запроса?
Параметр sig равен md5 от контактенации следующих строк: - viewer_id – id текущего пользователя, переданный приложению посредством flashVars/GET запроса. (При запросе с сервера viewer_id указывать не нужно)
- пар "parameter_name=parameter_value", расположенных в порядке возрастания имени параметра (по алфавиту).
- секрета secret полученного через flashVars / GET запрос, или, если метод вызывается с сервера - секрета приложения api_secret (секрет Вы можете менять при редактировании страницы приложения).
Подпись для стандартных запросов:
sig = md5(viewer_idname1=value1name2=value2secret)
В данном случае sig равен md5("16api_id=3method=getFriendssecret") то есть 40c9572a4cf60ab9040ebfd1c5a8ecf5
Подпись для серверных и secure методов:
sig = md5(name1=value1name2=value2api_secret)
В данном случае sig равен md5("api_id=3method=getFriendsapi_secret") то есть 58fab5a6c42641a08009b2b715ed948d
Пример запроса:
http://vseti.by/api.php?api_id=23&method=getProfile...
В данном случае API получает запрос getProfiles ("вернуть данные о перечисленных в поле uids пользователях").
Пример ответа:
{"response":[{"uid":"16","first_name":"Александр","last_name":"Метелица","photo":"http:\/\/cs1.vseti.by\/u16\/c0_2357.jpg","sex":"2"}]}
По умолчанию ответ приходит в формате JSON в кодировке UTF-8.
Если же приходит сообщение об ошибке, то ответ мог бы выглядеть, например, следующим образом:
{"error":{"error_code":3,"error_msg":"Unknown method passed","request_params":[{"key":"api_id","value":"3"},{"key":"fields","value":"photo,sex"},{"key":"method","value":"getProfiles1"},{"key":"random","value":"3045"},{"key":"uids","value":"16"},{"key":"sig","value":"e895ff1ecf1b1a9d2347994acf325b45"}]}}
Коды общих ошибок
Unknown error occured. | |
Application is disabled. Enable your application or use test mode. | |
Unknown method passed. | |
Incorrect signature. | |
User authorization failed. | |
Too many requests per second. | |
Permission to perform this action is denied by user. |
Новости
10 марта 2013 - теперь можно загружать скриншот приложения
17 февраля 2013 - запущена платёжная система аналогичная ВКонтакте
5 дек 2012 - добавлены методы загрузки фото в альбом пользователя