Mit dieser Bibliothek können Sie einen Telegrammbot in die Rostsprache schreiben. Es ist ein fast vollständiger Wrapper für die Telegramm -Bot -API und sendet Hyper an den Telegrammserver. Jeder Telegrammfunktionsaufruf gibt eine Zukunft zurück, die den tatsächlichen Bot und die Antwort trägt.
Fügen Sie dies Ihrer Cargo.toml
[ dependencies ]
telebot = " 0.3.1 " Dieses Beispiel zeigt die grundlegende Verwendung der Telebot -Bibliothek. Es erstellt einen neuen Handler für einen einfachen Befehl "/Antwort" und antwortet den empfangenen Text. Der Tokio EventLoop befragt alle 200 ms für neue Updates und entspricht ihnen mit den registrierten Ereignissen. Wenn der Befehl mit "/Antwort" übereinstimmt, wird die Funktion aufgerufen und die zurückgegebene Zukunft ausgeführt.
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 ) ;
} Das erstere Beispiel war sehr einfach mit nur einem Handler und ohne Fehlerbehandlung. Wenn Sie eine weitere erklärte und illustrierte sehen möchten, siehe hier.
Diese Kiste verwendet benutzerdefinierte Ableitungen, um Funktionen der Telegramm -API zu generieren. Daher wird jede vollständige Funktion mit einer Struktur in Funktionen beschrieben. Um eine Funktion zu finden, kann die Struktursignatur verwendet werden. Betrachten Sie beispielsweise 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 >
} Das Feld "Funktion" definiert den Namen der Funktion in der lokalen API. Jedes optionale Feld in der Struktur kann geändert werden, indem eine zusätzliche Funktion mit dem Namen des Feldes aufgerufen wird. So senden Sie den Standort von Paris in Chat 432432 ohne Benachrichtigung: bot.location(432432, 48.8566, 2.3522).disable_notification(true).send()
Lizenziert unter einem von
nach Ihrer Option.
Sofern Sie nicht ausdrücklich anders angeben, ist ein Beitrag, der absichtlich zur Aufnahme in die Arbeit von Ihnen eingereicht wird, wie in der Apache-2.0-Lizenz definiert, ohne zusätzliche Bedingungen doppelt lizenziert wie oben.