NEWS
Telegram: Cannot send message...
-
Hallo Zusammen,
ich habe ein paar Blockly Scripte, die eine Nachricht per Telegram verschicken sollen. Die Scripte selber sind korrekt.
Eine Zeitlang, wenn ich z.B. das Passtwort im Bot ändere,... funktioniert alles, dann kommen die Fehlermeldungen im Log...
(18810) Cannot send message [chatId - 731678483]: Error: ETELEGRAM: 403 Forbidden: bot was blocked by the user
oder
(16459) Cannot send message [chatId - 731678483]: Error: ETELEGRAM: 403 Forbidden: bot was blocked by the user
...
ich habe aber im Bot ganz sicher nichts blockiert.Woher kann das kommen?
-
@Stefan_NK Mal versucht über sendTo zu senden?
Andere Methode ist direkt über die API mit Request:
(Hinter bot muss der TOKEN stehen:
TOKEN:
-
@MCU
Hallo, ich bin leider erst jetzt zum Testen gekommen.
Variante 1 funktioniert leider nicht. Bei chat_id gebe ich die ID des Benutzers an, oder?
Variante 2 verstehe ich leider überhaupt nicht, wo und wie ich das einbinden soll -
@Stefan_NK Zu Variante 1: Ja die chat_id des Benutzers an den du senden möchtest.
Zu Variante 2: In der Instanz "telegram.0" gibt es ja einen TOKEN und den fügst du hinter ".../bot" ein.
Diese Variante nutzt man um am Adapter vorbei und direkt an "telegram" Daten zu senden.
Damit kann man also prüfen, ob es am Adapter liegt, oder doch an Telegram, bzw an de Einstellungen zum User.Die chat_id 731678483 ist Deine eigene!?
-
@MCU
Ich habe jetzt mal alles so belassen, allerdings habe ich gesehen, dass die falsche node-js Version installiert war (10.x anstatt 12.x). bin jetzt mal am Testen. -
@Stefan_NK
Hast du dazu eine Lösung gefunden? Ich habe exakt den gleichen Fehler. Plötzlich erhalte ich ein "Forbidden: bot was blocked by the user" obwohl ich nichts an den Scripts bzw. Einstellungen geändert habe.
Ich bin bereits vor einigen Wochen von node-js vo 10.x auf die Version 12.x gewechselt. Meine Adapter sind alle auf dem neusten Stand!Lösung gerade gefunden: Ich habe unter Telegram im BotFather den bot nocheinmal ausgewählt und neu gestartet. Die Fehlermeldung war sofort weg!
-
Mein sendto Block sieht so aus?!
Da is nix mit send oder chatid * grübel *
Deswegen erstaunen mich gerade Deine beiden Varianten. -
@haselchen sagte in Telegram: Cannot send message...:
Da is nix mit send oder chatid * grübel *
nimm den ersten Block unter SendTo
-
Aaaaah ok.
Blöd gefragt, wieso nimmt man dann nicht den sendto Block extra für Telegram? -
@haselchen sagte in Telegram: Cannot send message...:
Aaaaah ok.
Blöd gefragt, wieso nimmt man dann nicht den sendto Block extra für Telegram?Ich kenne nur eine Anwendung dafür: Wenn du ein Bild senden willst dann brauchst du einen Parameter
caption
, den kannst du nur im SendTo Block erstellen
-
Man lernt ja nicht aus.
Hab das per Javascript gelöst....falls sich jemand bedienen möchtevar timeout, timeout1, timeout2; var fs = require('fs'); on({id: 'hm-rpc.1.XXX.1.PRESS_SHORT', change: "any"}, function (obj) { var value = obj.state.val; var oldValue = obj.oldState.val; timeout = setTimeout(function () { exec('wget --output-document /opt/iobroker/iobroker-data/tmp/alarm.jpg \'http://192.XXXXXX:XXXX/picture/1/current/\''); }, 2000); timeout1 = setTimeout(function () { const bild = fs.readFileSync('/opt/iobroker/iobroker-data/tmp/alarm.jpg'); writeFile('vis.0','alarm.jpg', bild); }, 4000); timeout2 = setTimeout(function () { sendTo("telegram.1", "send", { text: '/opt/iobroker/iobroker-data/files/vis.0/alarm.jpg' }); }, 6000); // ab hier so oft wiederholen wie man es möchte });
-
@haselchen Das sind nur zwei Varianten um zu Prüfen, ob es am Adapter liegt oder an den Einstellungen in Telegram selbst. Die 2. Variante geht den Weg direkt über api von Telegram.