Создать пользовательскую переменную

Метод vars/create создаёт в сообществе пользовательскую переменную, как кнопка «Создать переменную». Параметры, ответ и общий лимит на создание.

Обновлено

Создаёт в сообществе новую пользовательскую переменную — как кнопка «Создать переменную» в интерфейсе.

Нужен личный токен с продуктом BotHunter — как получить. Кому доступен: владельцу сообщества и сотрудникам с ролью «Админ (полный доступ)» или «Пользователи».

Лимит: не больше 20 созданий в минуту и 200 в сутки — вместе с lists/create и globalVars/create. Считается и попытка с ошибкой в параметрах, сутки начинаются в 03:00 по Москве. Сверх лимита — ошибка 5, ничего не создаётся.

Параметры

group_id
целое число
обязательный

Номер сообщества — group_id из ответа groups/get.

Пример: 123456

channel
строка
обязательный

Канал сообщества: VK, TG, OK, MAX, CHAT или AVITO — константы.

Пример: VK

title
строка
обязательный

Название переменной, до 120 символов. Его видно в интерфейсе.

Пример: Бонусы

name
строка
обязательный

Короткое имя для подстановки в тексты: переменная bonus подставится как {%bonus%}. До 120 символов, должно быть свободно в сообществе. Нельзя использовать символы . { } [ ] % | ' " : ;, обратный апостроф и сочетание _NAME.

Пример: bonus

Результат

Возвращает созданную переменную — как элемент vars/list. Её id передавайте как var_id в vars/get, vars/set и vars/clear.

{
  "status": "ok",
  "response": {
    "id": "61af67fb5bc8635f3f53b18b",
    "title": "Бонусы",
    "name": "bonus",
    "create_at": 1704067200
  }
}

Коды ошибок

Общие ошибки — на странице API.

Код

Когда

5

«Слишком много созданий: не больше 20 в минуту и 200 в сутки. Повторите позже.»: лимит созданий исчерпан, ничего не создано.

7

Не передан group_id или channel, значение неверное или такого сообщества нет.

«Не указан обязательный параметр title» или «… name»: параметр не передан или пустой.

«Параметр title: максимальная длина 120 символов» или то же про name: значение длиннее 120 символов.

«В коротком имени не должно быть символа: «:»»: в name запрещённый символ, в кавычках — какой именно.

«Переменная "bonus" уже существует»: такое короткое имя в сообществе уже занято.

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

Подставьте свой токен вместо <ваш_токен>.

curl
PHP
Python
JavaScript
curl -X POST https://bot-api.targethunter.ru/external-api/v2/vars/create \
  -H "Authorization: Bearer <ваш_токен>" \
  -H "Content-Type: application/json" \
  -d '{"group_id": 123456, "channel": "VK", "title": "Бонусы", "name": "bonus"}'
$token = '<ваш_токен>';
$url = 'https://bot-api.targethunter.ru/external-api/v2/vars/create';
$params = [
    'group_id' => 123456,
    'channel' => 'VK',
    'title' => 'Бонусы',
    'name' => 'bonus',
];

$curl = curl_init($url);
curl_setopt_array($curl, [
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $token,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($params),
]);

$response = json_decode(curl_exec($curl), true);
curl_close($curl);
import requests

token = '<ваш_токен>'
url = 'https://bot-api.targethunter.ru/external-api/v2/vars/create'
params = {
    'group_id': 123456,
    'channel': 'VK',
    'title': 'Бонусы',
    'name': 'bonus',
}

response = requests.post(url, json=params, headers={'Authorization': f'Bearer {token}'})
print(response.json())
const token = '<ваш_токен>';
const params = {
  "group_id": 123456,
  "channel": "VK",
  "title": "Бонусы",
  "name": "bonus"
};

const response = await fetch('https://bot-api.targethunter.ru/external-api/v2/vars/create', {
  method: 'POST',
  headers: {
    'Authorization': `Bearer ${token}`,
    'Content-Type': 'application/json',
  },
  body: JSON.stringify(params),
});
console.log(await response.json());