Серверный API

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

Название Обязательный параметр Описание
app_id + идентификатор приложения, присваивается при создании
method + название метода API из общего списка функций.
sig + подпись, которая создается в целях безопасности. Порядок создания подписи описан ниже. Параметр не учитывается при создании подписи!
format формат возвращаемых данных - XML или JSON. По умолчанию JSON.
sid +

идентификатор сессии, полученный во flashVars или GET в iframe приложениях.

В методах, отдающих открытые данные, SID не обязателен.

В случае, если он передан - там где есть ссылки на внутренние страницы системы, будет подставлен url текущего партнера. Если SID не передан, в ссылке вместо url партнера вернется %PARTNER_URL% (в данном случае подстановка урла партнера остается на совести разработчика, получить его можно из данных инициализации приложения partner_url)
secure секретная передача данных или нет. 0 - нет (протокол клиент-сервер), 1 - секретная (протокол сервер-сервер)

Все запросы к серверу API должны содержать перечисленные выше обязательные параметры, плюс параметры, необходимые для вызываемого метода. Параметр SID является ключом, позволяющем серверу API определить, от лица какого пользователя производится запрос. В случае некорректно переданного SID — ответ от сервера будет отрицательным (в тех методах, где он обязателен), таким образом приложение может работать некорректно. Ключ SID актуален в течение 4х часов с момента последнего запроса к серверу!

При создании приложения, разработчик получает два ключа secret_key и private_key, необходимые для подписи передаваемых параметров. Они становятся доступны на странице настроек приложения после сохранения первоначальных данных.
secret_key — используется при обращение к серверному API от сервера, т.е. запрос от сервера приложений к серверу API.
private_key — используется при обращение к серверному API от клиента. Так же используется для подписи в auth_key (см. ниже). Так же ключ используется при подписи параметров, передаваемых приложению.

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

Подпись запросов осуществляется по следующим алгоритмам (sig)

  1. Сервер - сервер (secret_key):
    private function sign_server_server(array $request_params, $secret_key){
        ksort($request_params);
        $params = ‘’;
        foreach ($request_params as $key => $value) {
            $params .= "$key=$value";
        }
        return md5($params . $secret_key);
    }
    
  2. Клиент - сервер (private_key):
    private function sign_client_server(array $request_params, $oid, $private_key){
        ksort($request_params);
        $params = ‘’;
        foreach ($request_params as $key => $value) {
            $params .= "$key=$value";
        }
        return md5($oid . $params . $private_key);
    }
    

Формат ответа сервера:

 JSON:{
    "status": "",
    "data": {},
    "message": ""
    }

    XML:
    <response>
    <status></status>
    <data></data>
    <message></message>
    </response>
где:
status - статус операции (в случае успешного завершения =0)
data - данные по запросу
message - системное сообщение операции

Коды ошибок

Список кодов ошибок. (код ошибки выводится в status, описание ошибки выводится в message)
Код ошибки Описание ошибки
1 «Неизвестная ошибка»
2 «Неизвестный метод»
3 «Один из параметров отсутствует или передан неправильно»
4 «Запрашиваемые данные не найдены»
5 «Ошибка авторизации: неверный сессионный ключ»
6 «Приложение №* не найдено»
7 «Ошибка подписи»
8 «Ошибка доступа для данного пользователя»
9 «Ошибка доступа для данного приложения»
10 «Метод доступен только в безопасном режиме (secure=1)»
11 «Запрошен неверный формат данных»
12 «Устаревший метод»
В случае успешного завершения операция:
status — 0
message — пустое

Методы API

  • achievement.set Обновить запись на доске достижений.
  • anketa.getFlags Получение списка флагов любой анкеты: VIP, реал, лидер, maketop, интим за деньги.
  • anketa.getHitlist Получение списка пользователей, просматривавших заданную анкету.
  • anketa.getInfo Получение всех полей анкеты.
  • anketa.getInterests Получение интересов. Возвращает содержимое блока анкеты «Интересы».
  • anketa.getTravel Получение объявлений из сервиса «Попутчики»
  • anketa.inFavourites Проверка, стоит ли приложение в списке «Избранных» у пользователя.
  • anketa.isAppOwner Проверка, является ли пользователь владельцем приложения
  • anketa.isAppUser Проверяет, установлено ли указанное приложение в заданной анкете.
  • anketa.isOnline Статус online или время последнего посещение сайта пользователем, если он не применяет «Шапку невидимку».
  • contacts.getContactList Получение списка контактов по заданному лимиту.
  • contacts.getFolderContactList Получение списка контактов из заданной папки
  • contacts.getFolderList Получение списка папок «моих сообщений» со счетчиками контактов
  • contacts.sendMessage Написать сообщение в мессенджер от имени пользователя.
  • diary.getPosts Получение списка постов дневника — заголовки и ссылки на посты
  • geo.getCities Получение списка городов региона
  • geo.getCountries Получение списка стран
  • geo.getMetro Получение списка станций метро города
  • geo.getRegions Получение списка регионов страны
  • notify.sendMessage Отослать извещение в мессенджер от имени пользователя «Менеджер приложений».
  • photos.get Получение списка фотографий для заданного включенного альбома
  • photos.getAlbums Получение списка включенных альбомов.
  • search.get Стандартный краткий поиск мамбы.