Эта библиотека позволяет написать телеграмму на языке ржавчины. Это почти полная обертка для API Telegram Bot и использует Hyper для отправки запросов на сервер Telegram. Каждый вызов функции Telegram возвращает будущее, которое несет фактический бот и ответ.
Добавьте это в свой Cargo.toml
[ dependencies ]
telebot = " 0.3.1 " В этом примере показано основное использование библиотеки Телеботов. Он создает новый обработчик для простой команды «/ответа» и отвечает полученным текстам. Tokio Eventloop опросывает каждые 200 мс для новых обновлений и соответствует им с зарегистрированными событиями. Если команда совпадает с «/ответом», она вызовет функцию и выполнит возвращенное будущее.
use telebot :: Bot ;
use futures :: stream :: Stream ;
use std :: env ;
// import all available functions
use telebot :: functions :: * ;
fn main ( ) {
// Create the bot
let mut bot = Bot :: new ( & env :: var ( "TELEGRAM_BOT_KEY" ) . unwrap ( ) ) . update_interval ( 200 ) ;
// Register a reply command which answers a message
let handle = bot . new_cmd ( "/reply" )
. and_then ( | ( bot , msg ) | {
let mut text = msg . text . unwrap ( ) . clone ( ) ;
if text . is_empty ( ) {
text = "<empty>" . into ( ) ;
}
bot . message ( msg . chat . id , text ) . send ( )
} )
. for_each ( |_| Ok ( ( ) ) ) ;
bot . run_with ( handle ) ;
} Первый пример был очень прост с одним обработчиком и без обработки ошибок. Если вы хотите увидеть еще один объясненный и проиллюстрированный, пожалуйста, посмотрите здесь.
Этот ящик использует пользовательский, полученный для генерации функций Telegram API. Следовательно, каждая полная функция описывается с помощью структуры в функциях. RS, а дополнительная линейка ящика Telebot-Terive генерирует полную подпись. Чтобы найти функцию, можно использовать подпись структуры. Например, рассмотрите SendLocation:
/// Use this method to send point on the map. On success, the sent Message is returned.
# [ derive ( TelegramFunction , Serialize ) ]
# [ call = "sendLocation" ]
# [ answer = "Message" ]
# [ function = "location" ]
pub struct SendLocation {
chat_id : u32 ,
latitude : f32 ,
longitude : f32 ,
# [ serde ( skip_serializing_if= "Option::is_none" ) ]
disable_notification : Option < bool > ,
# [ serde ( skip_serializing_if= "Option::is_none" ) ]
reply_to_message_id : Option < u32 > ,
# [ serde ( skip_serializing_if= "Option::is_none" ) ]
reply_markup : Option < NotImplemented >
} Поле «Функция» определяет имя функции в локальном API. Каждое необязательное поле в структуре может быть изменено, вызывая дополнительную функцию с именем поля. Так, например, отправить местоположение Парижа в ЧАТ 432432 без уведомления: bot.location(432432, 48.8566, 2.3522).disable_notification(true).send()
Лицензирован под одним из
на вашем варианте.
Если вы явно не заявляете иное, какой-либо вклад, преднамеренно предназначенный для включения в работу вами, как определено в лицензии Apache-2.0, должен быть двойной лицензией, как указано выше, без каких-либо дополнительных условий или условий.