API Пьедестала

Методы API:

Общее

Информация о лицензии: groupStatusGet

Рейтинг

Изменение рейтинга пользователя: ratingUserChange

Получение рейтинга пользователей: ratingUserGet

Получение топ-100 рейтинга: ratingUserTopGet

Магазин

Получение баланса пользователей: marketUserBalanceGet

Изменение баланса пользователя: marketUserBalanceChange

Массовое изменение баланса пользователей: marketUserBalanceChangeAll

Ошибки
Позднее появится метод редактирования баллов текущего периода. Пишите нам, каких методов еще не хватает.

Описание API

Каждый метод работает с GET и POST. Ответ от сервера в формате JSON.

Ограничение: 10 запросов в секунду с ip-адреса. Для популярных сервисов, где от многих пользователей запросы идут с 1 ip-адреса, лимит значительно увеличен.

Генерация ключа и права доступа:

Ключ создаётся на вкладке «настройки → администратору → API»:

API Пьедестала, image #1

Всего можно создать 6 ключей на каждую группу. У ключей есть разграничение по правам:

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

Чтение и изменение — доступны все методы.

Методы API

Информация о лицензии

Метод: groupStatusGet

GET/POST https://pedestal.aiva-studio.ru/apiv1/groupStatusGet.php?access_token=Ключ_доступа

Пример ответа сервера:

{"response":
{
"is_exist_group_token":"1", // Наличие токена группы ВК
"period_start_date":"1584316800", // Начало периода в формате Unixtime
"period_stop_date":"1584921600", // Окончание периода в формате Unixtime
"widget_autoupdate_date_last":"1584605131", // Дата последнего обновление виджета
"widget_autoupdate_date_next":"1584619531", // Дата следующего обновление виджета
"group_pay_rating_date_end":"1684347144", // Дата окончания лицензии рейтинга
    "group_pay_covers_date_end":"1684347144",  // Дата окончания лицензии обложек
    "last_error_widget_update":"0"         // Код последней ошибки обновления виджета
}
}

Изменение рейтинга пользователя

Метод: ratingUserChange

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

Принимает:

  • user_id — id пользователя ВКонтакте, которому нужно отредактировать баллы рейтинга;
  • change — на какое кол-во баллов изменяем рейтинг. Если нужно списать баллы, то число со знаком минус.

Пример запроса:

GET/POST https://pedestal.aiva-studio.ru/apiv1/ratingUserChange.php?access_token=Ключ_доступа&user_id=27196517&change=100

Пример ответа сервера:

{"status":"ok"}

Получение рейтинга пользователей

Возвращает неотсортированный массив объектов с информацией о рейтинге пользователей текущего периода.

Метод: ratingUserGet

Принимает:

  • user_ids — массив id пользователей ВКонтакте, по которым надо получить кол-во баллов из рейтинга (максимум 2000). Если не указан, возвращаются данные по всем пользователям, с ограничением count;
  • details — если равен 1, то в ответе будет информация о количестве учтённых лайков, комментариев, голосований и постов (по умолчанию 0). Учтёнными активностями считаются те активности, за которые начислены баллы. Если комментарий не прошёл по кол-ву символов, то это не учтённый комментарий;
  • offset — смещение;
  • count — максимальное количество результатов (1000 по умолчанию, максимум 2000).

Пример запроса:

GET/POST https://pedestal.aiva-studio.ru/apiv1/ratingUserGet.php?access_token=Ключ_доступа&user_ids=1,2&details=1

Пример ответа сервера:

{
"response":[
{
"id_user_vk":"1", // id пользователя Вконтакте
"rating":"10", // Кол-во баллов в рейтинге
"count_likes":"2", // Кол-во учтённых лайков
"count_comments":"36", // Кол-во учтённых комментариев
"count_polls":"0", // Кол-во учтённых голосов
"count_walls":"10" // Кол-во постов (с предложки или на стене)
},
{
"id_user_vk":"2",
"rating":"10",
"count_likes":"2",
"count_comments":"0",
"count_polls":"3",
"count_walls":"1"
}
]
}

Получение топ-100 рейтинга

Возвращает топ-100 пользователей из рейтинга текущего периода в сортировке по количеству баллов.

Метод: ratingUserTopGet

Принимает:

  • details — если равен 1, то в ответе будет информация о количестве учтённых лайков, комментариев, голосований и постов (по умолчанию 0);
  • count — максимальное количество результатов (по умолчанию 10, максимум 100).

Пример запроса:

GET/POST https://pedestal.aiva-studio.ru/apiv1/ratingUserTopGet.php?access_token=Ключ_доступа&count=3

Пример ответа сервера:

{
"response":[
{
"id_user_vk":"16238909",
"rating":"15"
},
{
"id_user_vk":"30134515",
"rating":"15"
},
{
"id_user_vk":"84674297",
"rating":"15"
}
]
}

Получение баланса пользователей

Возвращает неотсортированный массив пользователей с балансом «мгагазина»

Метод: marketUserBalanceGet

Принимает:

  • user_ids — массив id пользователей ВКонтакте, баланс которых надо получить (максимум 5000). Если не указан, возвращаются все пользователи с ограничением count;
  • offset — начальное смещение;
  • count — максимальное количество результатов (по умолчанию 1000, максимум 5000).

Пример запроса:

GET/POST https://pedestal.aiva-studio.ru/apiv1/marketUserBalanceGet.php?access_token=Ключ_доступа&user_ids=1,2

Пример ответа сервера:

{
"response":[
{
"id_user_vk":"1",
"balance":"59"
},
{
"id_user_vk":"2",
"balance":"0"
}
]
}

Изменение баланса пользователя

Изменяет баланс указанного пользователя на указанную величину. Добавляет / списывает, а не задаёт новое точное значение. Операция добавления / списания попадает в историю операций.

Метод: marketUserBalanceChange

Принимает:

  • user_id — id пользователя ВКонтакте, баланс которого надо изменить;
  • coins — величина изменения. Может быть как положительной, так и отрицательной.

Пример запроса:

GET/POST https://pedestal.aiva-studio.ru/apiv1/marketUserBalanceChange.php?access_token=Ключ_доступа&user_id=1&coins=5

Пример ответа сервера:

{"status":"ok"}

Массовое изменение баланса пользователей

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

Метод: marketUserBalanceChange

Принимает:

  • goal — «balance_positive» — баланс изменится у тех пользователей, у кого он больше нуля, «from_list» — если нужно изменить баланс пользователям из списка. (Обязательный параметр);
  • from_list — список идентификаторов пользователей, которым будет изменён баланс (только для goal=from_list);
  • coins — величина изменения. Может быть как положительной, так и отрицательной.

Пример запроса:

GET/POST https://pedestal.aiva-studio.ru/apiv1/marketUserBalanceChangeAll.php?access_token=Ключ_доступа&goal=balance_positive&coins=-3

Пример ответа сервера:

{"status":"ok"}

Ошибки

В случае ошибки возвращается объект с кодом ошибки error_code и описанием error.

Возможные error_code:

  • 208 — метод нельзя вызывать так часто;
  • 400 — некорректный запрос;
  • 402 — требуется оплата приложения;
  • 403 — в доступе отказано;
  • 404 — ключ группы не найден;
  • 429 — слишком много запросов;
  • 500 — внутренняя ошибка сервера.

Пример ответа с ошибкой:

{
"error_code":404,
"error":"group or token not found"
}
13453 views·20 shares