Telegram Messenger Modul

Vermutlich bekommst du die Meldung, wenn du ein Bild oder andere Inhalte schickst, da dann der Text leer ist und das Modul nur mit Text-Inhalten umgehen kann.

Hallo,

die Meldung kam 23:21, 01:51, 03:28, und 03:42 danach nicht mehr.

eigentlich schick ich auch nur Textnachrichten.

wie krieg ich das raus, wer da evtl. verursacher ist?

Oliver

hallo,

um 10:32 kam wieder ein Fehler + unter Benachrichtigung folgende Info

17.12.2020, 10:30:12 | Telegram             | Update von -1001328669637 ->  / 1608197411 / Telegram Object
(
    [bot_id:Telegram:private] => 676000092:AAHoxxxxxxxxxxxxxxx44ese6NNpct5C_hjY
    [data:Telegram:private] => Array
        (
            [update_id] => 210381496
            [message] => Array
                (
                    [message_id] => 7092
                    [from] => Array
                        (
                            [id] => 1179095113
                            [is_bot] => 
                            [first_name] => ليلى
                            [last_name] => الحسن
                        )

                    [chat] => Array
                        (
                            [id] => -1001328669637
                            [title] => Telegram Spam
                            [type] => supergroup
                        )

                    [date] => 1608197411
                    [new_chat_participant] => Array
                        (
                            [id] => 1179095113
                            [is_bot] => 
                            [first_name] => ليلى
                            [last_name] => الحسن
                        )

                    [new_chat_member] => Array
                        (
                            [id] => 1179095113
                            [is_bot] => 
                            [first_name] => ليلى
                            [last_name] => الحسن
                        )

                    [new_chat_members] => Array
                        (
                            [0] => Array
                                (
                                    [id] => 1179095113
                                    [is_bot] => 
                                    [first_name] => ليلى
                                    [last_name] => الحسن
                                )

                        )

                )

        )

    [updates:Telegram:private] => Array
        (
            [ok] => 1
            [result] => Array
                (
                    [0] => Array
                        (
                            [update_id] => 210381496
                            [message] => Array
                                (
                                    [message_id] => 7092
                                    [from] => Array
                                        (
                                            [id] => 1179095113
                                            [is_bot] => 
                                            [first_name] => ليلى
                                            [last_name] => الحسن
                                        )

                                    [chat] => Array
                                        (
                                            [id] => -1001328669637
                                            [title] => Telegram Spam
                                            [type] => supergroup
                                        )

                                    [date] => 1608197411
                                    [new_chat_participant] => Array
                                        (
                                            [id] => 1179095113
                                            [is_bot] => 
                                            [first_name] => ليلى
                                            [last_name] => الحسن
                                        )

                                    [new_chat_member] => Array
                                        (
                                            [id] => 1179095113
                                            [is_bot] => 
                                            [first_name] => ليلى
                                            [last_name] => الحسن
                                        )

                                    [new_chat_members] => Array
                                        (
                                            [0] => Array
                                                (
                                                    [id] => 1179095113
                                                    [is_bot] => 
                                                    [first_name] => ليلى
                                                    [last_name] => الحسن
                                                )

                                        )

                                )

                        )

                )

        )


in Telegram selbst hab ich diese „Nachricht“ von [first_name] => يلى
[last_name] => الحسن

nicht. Hat da einer gespamt?

Gruß

Oliver

Genau, das hatte ich gerade gesucht, du warst schneller.

Da die ID nicht in der Instanz eingetragen ist, passiert nichts, aber die Meldung vom Telegram Modul wird ausgegeben.

Das kannst du selber testen, in dem du ein Bild oder Sprachnachricht schickst, dann bekommst du die Meldung auch.

Hallo Jens!

Ich würde mich freuen, wenn du in die module.php noch mit aufnimmst:

bei ca. Zeile 119:

$firstname = $telegram->FirstName();

und dann entsprechend später ab Zeile 128:

IPS_RunScriptEx(
									$this->ReadPropertyInteger("ProcessIncomingSkript"),
									array("SENDER" => "Telegram", "INSTANCE" => $this->InstanceID, "CHAT" => $chat_id, "NAME" => $firstname, "VALUE" => $text)

Dadurch würde der Vorname des Absenders mit übertragen.
Damit wäre auch das Problem gelöst, dass wenn der Bot in einer Gruppe steckt, man als „Absender“ immer nur die Gruppen-ID erhält und nie rausfinden kann, von welchem Gruppenteilnehmer die Nachricht war.

Alternativ zum FirstName müsste man ggf. über Nachname bzw. Telegram-Username nachdenken. Die Funktionen dafür sind ja in der telegram.php schon alle drin.

Viele Grüße,
ika

PS: Der Empfang von Bildern wäre noch ein tolles Feature! Habe mir dazu die GetFile-Geschichten der API angeschaut - leider übersteigt das aber meine Coding-Skills.

Hallo an Alle,

ich habe das Modul für mich dahingehend angepasst. Damit stehen dann folgende Variablen im Script zur Verfügung:

if ($_IPS['SENDER'] == "Telegram") {
    process_incoming($_IPS['INSTANCE'], $_IPS['CHAT'], $_IPS['VALUE'],$_IPS['LASTNAME'],$_IPS['FIRSTNAME']);
}

Weiterhin bekommen alle , die nicht in der Whitelist sind eine Antwort. Diese kann in der Instance bearbeitet werden.

  1. Änderung. Ich erstelle eine HTML Tabelle der letzen Aufrufe und lege Sie in einer String Variable (~HTMLBox) ab.

Damit hat man eine schöne Übersicht.

Zu finden ist meine geänderte Version hier:
https://github.com/IPSAttain/Telegram

Gruß
Attain

Hallo ika,

danke für die Idee. Ist eingebaut und ein Update steht bereit!

Hallo Titus, Hallo Attain.

danke für Eure Antworten.

@Attain: die Ideen sind gut, ich halte nur nichts von so vielen unterschiedlichen Clones. Ich würde es begrüßen, wenn das Modul zentral gepflegt wird und alle User von den Updates profitieren.

@Titus: Danke für die Arbeit. Zwei Wünsche bleiben bei mir noch:

  1. die Reply/Inline-Keyboard-Funktionen (gemäß Post #214 von Jannis). Hierfür reicht es im Wesentlichen, wenn du die nachfolgende Funktion in die module.php zufügen würdest:
		public function SendTextKey($text, $userid, $markup) {
                        include_once(__DIR__ . "/Telegram.php");
                        $frmt = "Markdown";
                        if ($this->ReadPropertyBoolean("HTML") == true) {
                                $frmt = "HTML";
                        }
                        $telegram = new Telegram($this->ReadPropertyString("BotID"));
                        $content = array('chat_id' => $userid, 'text' => $text, 'parse_mode' => $frmt,'reply_markup' => $markup);
                        return $telegram->sendMessage($content);
        }

@Jannis, du darfst auch gerne nochmal deine Telegram_EditMessageText-Function publizieren, aber mit der o.g. SendTextKey-Function erreicht man schon alles Wesentliche. Läuft gut bei mir.

  1. der Empfang von Fotos mit der getFile-Function. Hier arbeite ich mich in den nächsten Tagen mal ein; vielleicht schaffe ich das.
    Falls ja, gebe ich die Änderung wieder an Titus.

@titus
Beim laden des Moduls wird folgendes geloggt:

14.01.2021 07:33:29 | 00000 | WARNING | ModuleLoader         | LibraryID for JMC Modules is not all upper case. Please fix the GUID to silence this warning!
14.01.2021 07:33:29 | 00000 | MESSAGE | ModuleLoader         | Lade JMC Modules Bibliothek...
14.01.2021 07:33:29 | 00000 | WARNING | ModuleLoader         | ModuleID for TelegramMessenger is not all upper case. Please fix the GUID to silence this warning!
14.01.2021 07:33:29 | 00000 | MESSAGE | ModuleLoader         | # TelegramMessenger geladen
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter text in der Funktion Telegram_SendTextToAll hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter text in der Funktion Telegram_SendText hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter userid in der Funktion Telegram_SendText hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter text in der Funktion Telegram_SendImage hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter image_path in der Funktion Telegram_SendImage hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter userid in der Funktion Telegram_SendImage hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter text in der Funktion Telegram_SendImageToAll hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter image_path in der Funktion Telegram_SendImageToAll hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter text in der Funktion Telegram_SendDocument hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter document_path in der Funktion Telegram_SendDocument hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter mimetype in der Funktion Telegram_SendDocument hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter userid in der Funktion Telegram_SendDocument hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter text in der Funktion Telegram_SendDocumentToAll hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter document_path in der Funktion Telegram_SendDocumentToAll hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'
14.01.2021 07:33:29 | 00000 | WARNING | PHPLibrary           | Parameter mimetype in der Funktion Telegram_SendDocumentToAll hat keinen Datentyp. Definieren Sie entweder 'bool', 'int', 'float' oder 'string'

Moin,

ich habe seit ca. 2 Tagen eine regelmäßige Fehlermeldung aus dem Modul, vermutlich wurde auch Telegram-Seite etwas geändert. Funktionieren tut es noch.

IPS-Err-PHP  2021-05-01 08:12:54.992  Notice: Undefined index: result
   Error in Script C:\ProgramData\Symcon\modules\master\TelegramMessenger\Telegram.php on Line 748
  137 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   44 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  748 in modules\master\TelegramMessenger\Telegram.php (call IPSLogger_PhpErrorHandler)
  112 in modules\master\TelegramMessenger\module.php (call getUpdates)
  6019 in scripts\__generated.inc.php (call GetUpdates)
    1 in C:\Windows\System32\- (call Telegram_GetUpdates)
IPS-Err-PHP  2021-05-01 08:12:54.992  Warning: count(): Parameter must be an array or an object that implements Countable
   Error in Script C:\ProgramData\Symcon\modules\master\TelegramMessenger\Telegram.php on Line 748
  137 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger.inc.php (call IPSLogger_Out)
   37 in scripts\IPSLibrary\app\core\IPSLogger\IPSLogger_PhpErrorHandler.inc.php (call IPSLogger_Err)
  748 in modules\master\TelegramMessenger\Telegram.php (call IPSLogger_PhpErrorHandler)
  112 in modules\master\TelegramMessenger\module.php (call getUpdates)
  6019 in scripts\__generated.inc.php (call GetUpdates)
    1 in C:\Windows\System32\- (call Telegram_GetUpdates)

Könntest Du bitte mal schauen?
Besten Dank und schönen Feiertag
Ciao
HerbertF

Moin Herbertf, bei mir tritt das Problem nicht auf. Auf welcher Version von Symcon bzw. PHP bist Du?

Moin,

auf Symcon 5.5., Windows 10 x64.

Wenn ich das Abholen der Nachrichten („Eingehende Nachrichten abrufen“) deaktiviere, ist der Fehler weg. (Dieses Häkchen hatte ich aber schon immer an ;-))

Nehme alles zurück.
Sorry.
Scheinbar hat sich mein Telegram-Bot-Konto gelöscht - warum auch immer :money_mouth_face: :nauseated_face:

Hi,
ich habe meine beiden Bots neu angelegt - funktioniert alles wieder.
Nun habe ich mal in den Einstellungen „rumgeblättert“ und mit Erschrecken festgestellt, dass jeder Chat (Konto) nach einem Jahr Nichtnutzung deaktiviert wird - dies war wohl mein Problem.
Wie habt ihr dies gelöst?? Geht dies irgendwie mit IPS oder macht ihr euch einen Mahner alle 11 Monate und geht dann über den mobilen Client in das Konto?
Schönen Sonntag noch …
HerbertF

Hallo, habe gestern eine zweite Telegram Instanz angelegt, seitdem funktioniert die erste Instanz nicht mehr (der Empfang). Im Meldungen Fenster sehe ich, dass Meldungen ankommen, aber das Inputscript wird nicht aufgerufen. Der Versand von Nachrichten funktioniert.
Kann mir jemand sagen, wie ich das wieder zum laufen bringe?
LG
Hugo

Hat diese Instanz den selben Bot eingerichtet, oder ist dies ein anderer? Denn pro Bot kann es nur eine Instanz geben. Ansonsten: Ändere in der alten Instanz etwas, sodass du die Einstellung neu übernehmen musst. Dann Registrieren wir den WebHook neu.

paresy

Ja, war ein anderer Bot. Ich habe in der alten Instanz bereits alle Häckchen mal rausgenommen, Einstellungen übernommen und wieder reingetan. Zwischenzeitlich habe ich festgestellt, dass beim Restart des Service, einmal das Inputscript aufgerufen wird. Danach ist wieder Sendepause.

Jemand hier, der eine Idee hat wie ich das Problem lösen kann?

In der Hoffnung, dass mir doch jemand helfen kann, beschreibe ich was ich versucht habe um das Problem zu lösen. Ich habe den Vorschlag von Paresy durchgeführt, Ergebnis war das gleiche. Dann habe ich die Ursprüngliche Instanz gelöscht und neu angelegt, danach mit Notepad++ in allen Scripts die ID der alten Instanz mit der neuen ersetzt. Es verhielt sich danach immer noch gleich.
Ich habe dann das komplette Modul gelöscht und neu installiert. Danach die TelegramMessenger Instanz neu angelegt und wieder mit Notepad++ die IDs angepasst.

Das versenden von Nachrichten funktioniert. Beim Empfang sollte das Inputscript gestartet werden, was aber nicht funktioniert. Im Meldungen Fenster erkennt man aber, das schon etwas ankommt - offenbar wird es aber nicht korrekt verarbeitet:

20.05.2021, 14:36:56 | Telegram             | Update von 1234567890 -> Test /xxxxxxxx / Telegram Object
(
    [bot_id:Telegram:private] => xxxxxxxxxxxxxx
    [data:Telegram:private] => Array
        (
            [update_id] => xxxxxxxxxxxxx
            [message] => Array
                (
                    [message_id] => xxxxxxxxxx
                    [from] => Array
                        (
                            [id] => xxxxxxxxxxxx
                            [is_bot] => 
                            [first_name] => A
                            [last_name] => A
                            [language_code] => de
                        )

                    [chat] => Array
                        (
                            [id] => xxxxxxxxxx
                            [first_name] => A
                            [last_name] => A
                            [type] => private
                        )

                    [date] => xxxxxxxxxxxx
                    [text] => Test
                )

        )

    [updates:Telegram:private] => Array
        (
            [ok] => 1
            [result] => Array
                (
                    [0] => Array
                        (
                            [update_id] => xxxxxxxxxxxx
                            [message] => Array
                                (
                                    [message_id] => xxxx
                                    [from] => Array
                                        (
                                            [id] => xxxxxxxxxx
                                            [is_bot] => 
                                            [first_name] => A
                                            [last_name] => A
                                            [language_code] => de
                                        )

                                    [chat] => Array
                                        (
                                            [id] => xxxxxxxxx
                                            [first_name] => A
                                            [last_name] => A
                                            [type] => private
                                        )

                                    [date] => xxxxxxxxx
                                    [text] => Test
                                )

                        )

                )

        )

)

Nachdem ich jetzt schon lange herumprobiere und nicht zu einer Lösung komme, wäre ich für jeden Tipp dankbar.

LG
Hugo

Ich habe fälschlicherweise angenommen, dass du mein Telegram Modul nutzt, welches zur 5.6 kommen wird :sweat_smile: Bei dem hier kann ich leider nicht helfen.

paresy