Graspil имеет разные способы подключение бота к системе. Здесь описан метод подключения с помощью API.
В личном кабинете, при подключении бота вы можете ознакомиться со всеми вариантами подключения.
В API существует два метода передачи данных в graspil:
— предпочтительный вариант
В данной статье под "данными" подразумевается набор обьектов
В graspil важно получить точное время получения вашим ботом (кодом), вплоть до миллисекунд. Поэтому мы рекомендуем использовать метод пакетной отправки данных
Вы можете передать точное время получения данных
Если вы сделаете отложенную передачу данных, например раз в минуту это положительно скажется на производительности всех систем.
Зачем нужна дата получения и в каких случаях важны миллисекунды
Дата получения объекта нужна просто потому что не все типы данных Update содержат дату.
Зачем миллисекунды?
Они важны в случае если вы так же передаете к в graspil. Системе важно правильно отсортировать список входящих, и исходящих сообщений и единственный способ сделать это использовать дату.
Часто получение и отправка сообщений происходит в рамках одной секунды, поэтому мы используем миллисекунды.
Авторизация
Graspil API ожидает, что ключ API будет включен во все запросы к API в заголовке, который выглядит следующим образом:
Name
Value
Api-Key
meowmeowmeow
Подробней про авторизацию и о том как получить ключ авторизации читайте в
Проверка структуры Update
В обоих методах система ожидает получить которые полностью соответствуют структуре Telegram Bot API
Мы рекомендуем передавать данные в том виде в котором вы получили их от телегам. Если вы решили собирать update самостоятельно, то убедитесь что структура данных на 100% соответствует Telegram Bot Api, так же убедитесь что передаете все нужные данные в graspil, иначе это может исказить отчеты.
Пакетная отправка данных
POSThttps://api.graspil.com/v1/send-batch-update
Headers
Name
Value
Content-Type
application/json
Api-Key
meowmeowmeow
Body
Параметр
Тип
Обязательный
Описание
date
Нет
Время получения ботом конкретного update. Если не передавать будет установленно текущее время.
Формат времени должен содержать миллисекунды и часовой пояс.
Пример: 2024-08-03T20:00:00.123+02:00
В момент когда вы получаете данные от Telegram Bot API вам необходимо отправить эти данные нашей платформе. Данные должны отправляться в неизменном виде, соответствующие структуре данных Telegram Bot API.
Данные получаемые от Telegram могут содержать две разных структуры, в зависимости от метода доставки обновлений webhook или getUpdate. Данный метод поддерживает обе этих структуры.
Headers
Name
Value
Content-Type
application/json
Api-Key
meowmeowmeow
Body
Пример тела запроса (тип бота webhook)
{
"update_id": 123,
"message":{
"date": 1691489960,
"chat":{...}, // <----- сокращение, содержит обьект Chat из TG API
"message_id": 123,
"from":{...}, // <----- сокращение, содержит обьект User из TG API
"text":"/start"
}
}
Пример тела запросы (тип бота getUpdates)
{
"ok":true,
"result":[
{
"update_id": 123,
"message":{...} // <- сокращение, содержит обьект Message из TG AP
},
{
"update_id": 124,
"message":{...} // <- сокращение, содержит обьект Message из TG AP
}
]
}
Примеры кода
Python
import requests
url = "https://api.graspil.com/v1/send-update"
api_key = "" # your API key
data = {} # received data from telegram
headers = {
"Api-Key": api_key,
"Content-Type": "application/json"
}
response = requests.post(url, json=data, headers=headers)
# Response processing
print(response.text)
PHP
$url = "https://api.graspil.com/v1/send-update";
$api_key = ""; // your API key
//$data - received data from telegram for sending
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Api-Key: ' . $api_key,
'Content-Type: application/json;'
)];
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
curl_close($ch);
Разработайте SDK на вашем языке программирования для подключения graspil. Опубликуйте этот репозиторий на GitHub и напишите нам на mail@graspil.com.
Мы добавим ссылку на ваш репозиторий в документацию что привлечет дополнительных посетителей на вашу страницу. Так же мы можем предоставить бесплатный доступ на несколько месяцев к премиум тарифу и ранний доступ к реферальной программе.
Для ускорения работы, в момент получения данных система проверяет только базовые части данных. Полная проверка, в том числе на соответствие данных структуре Telegram Bot API происходит позднее. При возникновении ошибок они попадут в раздел ""
Примеры структуры updates есть в документации
Метод для пакетной отправки . Можно передать до 1к update с указанием даты получения. Для отправки данных нужно отправить массив данных.
RFC 3339 ()
Объект
Один объект , данные которые вы получили от телеграм
Метод принимает до 1000 за один запрос
Для корректности работы системы, важно передавать данные в момент их получения. Либо использовать метод с добавлением даты получения, если вы отправляете данные позже