-
Notifications
You must be signed in to change notification settings - Fork 0
API UO Messenger fr
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
ClassicUO • Runtime API
Crée un objet de messagerie texte Telegram, Discord ou Viber. Un script peut signaler la fin d’une récolte ou vérifier une demande d’arrêt provenant d’un expéditeur autorisé. La création ne connecte pas le bot et n’envoie rien.
UO.Messenger(provider:String) -> Object
-
provider— String : "telegram", "discord" ou "viber", sans distinction de casse. Toute autre valeur provoque une erreur.
Object Messenger. Les identifiants de message, d’expéditeur et de conversation restent des String : ne pas les convertir avec CInt/CDbl.
-
Provider() → String;Connected() → 1/0(True/False) : service et dernier état d’authentification, pas une garantie d’accès Internet actuel. -
Connect(token) → Unitauthentifie le bot.ConnectFromFile(path) → Unitlit un fichier UTF-8 de 1024 octets maximum ; chemin relatif au dossier du script courant. Appeler Disconnect avant une nouvelle connexion. -
Disconnect() → Unitarrête la réception locale et efface jeton/curseurs ; reconnexion possible.Dispose() → Unitferme définitivement l’objet. -
SendMessage(text, recipient) → String: identifiant du message accepté. recipient est le chat ID Telegram, channel ID Discord ou ID d’abonné Viber, sous forme de texte. Longueur 1..4096/2000/7000 ; JSON Viber ≤30000 octets. Les mentions everyone/rôles Discord sont désactivées. -
WatchChannel(channelId) → Unit: Discord, mémorise le dernier message actuel et reçoit les suivants.WatchChannel(channelId, afterMessageId) → Unitreprend après cet ID texte ; "0" inclut l’historique. Maximum 32 canaux. -
Receive(timeoutSeconds) → Array;Receive()utilise 0. Délai 0..20 secondes ; tableau vide si aucun texte disponible. Telegram utilise le long polling, Discord interroge les canaux, Viber vide sa file webhook. Une requête réseau peut durer 30 secondes. - MessengerMessage :
Id(),SenderId(),SenderName(),ChatId(),Text()→ String. Un message de canal Telegram peut ne pas avoir de SenderId. Pièces jointes, événements non textuels et messages de bots Discord sont ignorés. -
RetryAfter() → Integer: secondes restantes après une limitation du service. Aucune nouvelle requête HTTP avant ce délai. Un envoi en échec n’est jamais répété automatiquement : il a peut-être déjà été livré. -
StartReceiver(localPort, publicHttpsUrl) → Integer: Viber, port 1..65535 ; retourne le port local. L’URL HTTPS publique doit finir par /viber/ et déjà transférer les POST vers 127.0.0.1:port/viber/ sans modifier corps ni signature. Enregistre le webhook. - Utiliser un jeton de bot. Le webhook Telegram existant est refusé sans suppression. Discord exige les permissions de lecture/envoi et MESSAGE_CONTENT ; Viber envoie aux abonnés.
- Les curseurs avancent après décodage complet du lot. Telegram/Discord : jusqu’à 100 entrées par requête ; rappeler Receive. Viber : HMAC-SHA256, file de 100 messages, dédoublonnage des 2048 derniers ID ; débordement HTTP 503. Le relais doit fournir Content-Length ; chunked est refusé localement.
- Les jetons ne sont pas enregistrés dans les profils, erreurs ou historique des arguments Connect. ConnectFromFile évite aussi une variable de script visible au débogueur. Ne pas publier les fichiers de jetons.
- Créer dans une procédure, 32 objets actifs maximum. Using/Dispose, fin, erreur et Stop libèrent les ressources. Fermer Viber ne supprime pas son webhook distant. Le texte reçu n’est jamais exécuté comme du code ; le script définit les expéditeurs autorisés.
CreateMessenger crée sans réseau et rattache les ressources à cette exécution du script.
CreateMessenger crée sans réseau et rattache les ressources à cette exécution du script.
Object Messenger. Les identifiants de message, d’expéditeur et de conversation restent des String : ne pas les convertir avec CInt/CDbl.
Source du projet: external/InjectionScript/src/InjectionScript/Runtime/InjectionRuntime.cs; fonction CreateMessenger.
RequestAsync prépare JSON/en-têtes du service, vérifie le statut et limite la réponse à 2 Mio et la requête à 30 secondes ; l’annulation interrompt l’attente.
Erreurs interceptables avec Try/Catch ; Stop reste une annulation. Un échec d’envoi ne prouve pas l’absence de livraison.
Source du projet: external/InjectionScript/src/InjectionScript/Runtime/Messaging/MessengerClient.cs; fonction RequestAsync.
Accept vérifie la signature Viber et UTF-8, puis met le texte en file. Receive le remet au script ; aucun callback de script dans le thread réseau.
Erreurs interceptables avec Try/Catch ; Stop reste une annulation. Un échec d’envoi ne prouve pas l’absence de livraison.
Source du projet: external/InjectionScript/src/InjectionScript/Runtime/Messaging/ViberReceiver.cs; fonction Accept.
Les ressources sont fermées à la fin de la procédure principale, sur erreur ou Stop.
# Telegram : travail terminé
#
# Crée un objet de messagerie texte Telegram, Discord ou Viber. Un script peut signaler la fin
# d’une récolte ou vérifier une demande d’arrêt provenant d’un expéditeur autorisé. La création
# ne connecte pas le bot et n’envoie rien.
#
# Object Messenger. Les identifiants de message, d’expéditeur et de conversation restent des
# String : ne pas les convertir avec CInt/CDbl.
SUB Main()
# Placer telegram-token.txt à côté du script et remplacer 12345678 par votre chat ID. Un message
# est envoyé ; son ID texte ne prouve pas sa lecture.
# Configurer votre bot. Exemples exécutés avec des réponses de test locales, sans destinataires
# réels.
Dim bot = UO.Messenger("telegram")
Using bot
bot.ConnectFromFile("telegram-token.txt")
Dim messageId = bot.SendMessage("Harvest finished", "12345678")
Return messageId
End Using
END SUBExplication des paramètres et du déroulement:
- Placer telegram-token.txt à côté du script et remplacer 12345678 par votre chat ID. Un message est envoyé ; son ID texte ne prouve pas sa lecture.
- Configurer votre bot. Exemples exécutés avec des réponses de test locales, sans destinataires réels.
# Discord : demande d’arrêt autorisée
#
# Crée un objet de messagerie texte Telegram, Discord ou Viber. Un script peut signaler la fin
# d’une récolte ou vérifier une demande d’arrêt provenant d’un expéditeur autorisé. La création
# ne connecte pas le bot et n’envoie rien.
#
# Object Messenger. Les identifiants de message, d’expéditeur et de conversation restent des
# String : ne pas les convertir avec CInt/CDbl.
SUB Main()
# Renseigner canal et expéditeur. True indique la réception de stop de cet utilisateur. Cet
# exemple n’arrête pas le déplacement ; utiliser le résultat dans votre boucle.
# Configurer votre bot. Exemples exécutés avec des réponses de test locales, sans destinataires
# réels.
Dim bot = UO.Messenger("discord")
Using bot
bot.ConnectFromFile("discord-token.txt")
bot.WatchChannel("123456789012345678")
Dim messages = bot.Receive(5)
For Each message In messages
If message.SenderId() = "987654321098765432" AndAlso LCase(Trim(message.Text())) = "stop" Then
Return True
End If
Next
Return False
End Using
END SUBExplication des paramètres et du déroulement:
- Renseigner canal et expéditeur. True indique la réception de stop de cet utilisateur. Cet exemple n’arrête pas le déplacement ; utiliser le résultat dans votre boucle.
- Configurer votre bot. Exemples exécutés avec des réponses de test locales, sans destinataires réels.
# Viber : texte signé
#
# Crée un objet de messagerie texte Telegram, Discord ou Viber. Un script peut signaler la fin
# d’une récolte ou vérifier une demande d’arrêt provenant d’un expéditeur autorisé. La création
# ne connecte pas le bot et n’envoie rien.
#
# Object Messenger. Les identifiants de message, d’expéditeur et de conversation restent des
# String : ne pas les convertir avec CInt/CDbl.
SUB Main()
# À côté du script : viber-token.txt et viber-settings.json contenant
# {"port":8787,"publicUrl":"https://YOUR-HOST/viber/"}. Configurer le relais HTTPS et remplacer
# trusted-subscriber-id. Résultat : texte ou chaîne vide.
# Configurer votre bot. Exemples exécutés avec des réponses de test locales, sans destinataires
# réels.
Dim settings = JsonLoad("viber-settings.json")
Dim bot = UO.Messenger("viber")
Using bot
bot.ConnectFromFile("viber-token.txt")
bot.StartReceiver(settings["port"], settings["publicUrl"])
Dim messages = bot.Receive(5)
For Each message In messages
If message.SenderId() = "trusted-subscriber-id" Then
Return message.Text()
End If
Next
Return ""
End Using
END SUBExplication des paramètres et du déroulement:
- À côté du script : viber-token.txt et viber-settings.json contenant {"port":8787,"publicUrl":"https://YOUR-HOST/viber/"}. Configurer le relais HTTPS et remplacer trusted-subscriber-id. Résultat : texte ou chaîne vide.
- Configurer votre bot. Exemples exécutés avec des réponses de test locales, sans destinataires réels.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь