В данной статье под "данными" подразумевается набор обьектов
В graspil важно получить точное время получения вашим ботом (кодом), вплоть до миллисекунд. Поэтому мы рекомендуем использовать метод пакетной отправки данных
Вы можете передать точное время получения данных
Если вы сделаете отложенную передачу данных, например раз в минуту это положительно скажется на производительности всех систем.
Зачем нужна дата получения и в каких случаях важны миллисекунды
Дата получения объекта нужна просто потому что не все типы данных Update содержат дату.
Зачем миллисекунды?
Они важны в случае если вы так же передаете к в graspil. Системе важно правильно отсортировать список входящих, и исходящих сообщений и единственный способ сделать это использовать дату.
Часто получение и отправка сообщений происходит в рамках одной секунды, поэтому мы используем миллисекунды.
Авторизация
Graspil API ожидает, что ключ API будет включен во все запросы к API в заголовке, который выглядит следующим образом:
Name
Value
Api-Key
meowmeowmeow
Подробней про авторизацию и о том как получить ключ авторизации читайте в разделе про авторизацию
Проверка структуры Update
В обоих методах система ожидает получить которые полностью соответствуют структуре Telegram Bot API
Для ускорения работы, в момент получения данных система проверяет только базовые части данных. Полная проверка, в том числе на соответствие данных структуре Telegram Bot API происходит позднее. При возникновении ошибок они попадут в раздел "Ошибки бота"
Пакетная отправка данных
POSThttps://api.graspil.com/v1/send-batch-update
Метод для пакетной отправки Update. Можно передать до 1к 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.
Для корректности работы системы, важно передавать данные в момент их получения. Либо использовать метод send-batch-update с добавлением даты получения, если вы отправляете данные позже
Данные получаемые от 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.
Мы добавим ссылку на ваш репозиторий в документацию что привлечет дополнительных посетителей на вашу страницу. Так же мы можем предоставить бесплатный доступ на несколько месяцев к премиум тарифу и ранний доступ к реферальной программе.