Telegram-Wechsel nicht möglich

Hallo,
Ich habe gerade die neueste Version von Gladys installiert.
Ich wollte die Telegram-Integration testen.
Ich kann nicht mit Gladys « sprechen ».

Ich habe gemacht:
docker logs gladys
In den Logs sehe ich einen Fehler:
User mit telegram_user_id "xxxxxxxxxx" nicht gefunden

Haben Sie eine Idee, was das Problem sein könnte?

Vielen Dank für Ihre Hilfe,

Mit freundlichen Grüßen,
Lionel

Hallo.

Hast du die Dokumentation hier befolgt? https://gladysassistant.com/fr/docs/integrations/telegram/
Bist du dir sicher, dass dein Benutzername korrekt ist? Du kannst die Nachricht /start an den Bot @userinfobot senden und es ist die ID, die du abrufen musst.

Tatsächlich glaube ich, dass du nicht auf den Link in Gladys geklickt hast, der die Nachricht /start sendet!

Hallo,
Vielen Dank für eure ultra-schnelle Rückmeldung.
Ich habe einen neuen Bot erstellt und den Vorgang noch einmal durchgeführt, um sicherzugehen. Ohne Erfolg.
Ich weiß also nicht, was ich tun soll.
Ich werde die ID heute Abend über @userinfobot überprüfen.
Gibt es aber eine Möglichkeit, sie manuell zu ändern?
Danke
Beste Grüße,
Lionel

Einfach, nein. Du solltest es nicht tun müssen, wenn die Konfiguration gut funktioniert.

Aber das könnte uns helfen, den Fehler zu beheben.

@Mazshaka Das Problem ist nicht der Bot, sondern dass du den Link-Prozess zwischen Telegram und Gladys nicht durchgeführt hast.

Hast du in Gladys auf den Link geklickt, der dich zu Telegram weitergeleitet hat, und dann eine Nachricht gesendet, indem du auf einen „Start“-Button geklickt hast?

Hallo,

Ich habe überprüft, dass die im Fehlermeldung angegebene ID tatsächlich meine ist.
Daher verstehe ich, dass das Problem bei der Synchronisation von Telegram und Gladys liegt.
Bei der Initialisierung habe ich Telegram auf meinem PC heruntergeladen. Es wurde mir angeboten, einen QR-Code mit meinem Telefon zu scannen. Das habe ich gemacht.
Ich habe meinen Bot erstellt, den API-Schlüssel in Gladys eingegeben, auf die Linkgenerierung geklickt und auf „Nachricht senden“ geklickt.
Es ist möglich, dass ich etwas übersehen habe, auch wenn ich glaube, alles richtig gemacht zu haben.
Trotzdem bin ich jetzt blockiert und habe keine Idee, wie ich das Problem lösen soll … :sweat_smile:

Ich habe gerade meinen Bot gelöscht und die gleichen Manipulationen wiederholt und es funktioniert.
Ist die erste Nachricht, die du an den Bot schickst, wirklich /start?

Das sieht eigentlich gut aus. Aus Neugier, welche Telegram-App verwendest du, wenn du auf „Nachricht senden“ klickst?

Wenn du die erste Nachricht sendest, antwortet Gladys dir dann mit einer „:waving_hand:“-Nachricht? Gibt es besondere Logs?

Was man bei der Initialisierung nicht sieht, ist, dass beim Weiterleiten zu Telegram mit dem von Gladys generierten Link ein spezieller Token hinzugefügt wird. Und wenn du die Nachricht /start sendest, wird der Token dann in deiner Startnachricht gesendet. Es ist also nicht nur eine Nachricht, die /start enthält (Telegram maskiert den Token), und Gladys verwendet ihn dann, um den Link zwischen deinem Gladys-Konto und deinem Telegram-Konto herzustellen.

Es ist also wichtig, den Link auf demselben Gerät zu öffnen, auf dem Telegram installiert ist. Machst du das?

Dein Link sollte so aussehen:

https://telegram.me/NOM_DE_TON_BOT?start=df6268b3aac5c14b6316935e428c7d98

Der Schlüssel am Ende ist der, der für das Deep Linking verwendet wird.

Hallo,
Nochmals vielen Dank für die schnelle Rückmeldung. Ich habe gestern versucht, ein wenig die Telegram-API-Dokumentation zu lesen, um besser zu verstehen, aber ich habe mich schnell verlaufen :sweat_smile:.
Bei der Erstellung der beiden Bots hatte ich das „Handshake“ :waving_hand:.
Zuerst habe ich versucht, mit Telegram am PC zu kommunizieren (nach Öffnen der Seite bei der Initialisierung) und dann über das Telefon.
Ich werde es heute Abend noch einmal versuchen, indem ich einen neuen Bot und einen neuen API-Schlüssel erstelle.
Nebenbei habe ich gelesen, dass Telegram Updates hat. Besonders auf der Authentifizierungsseite. Aber ich weiß nicht, ob das Auswirkungen hat.
Danke
Lionel

Sehr seltsam, denn wenn du das Hand-Emoji :waving_hand: hast, dann hat das Verknüpfen erfolgreich funktioniert!

Hast du einen Screenshot deines Chats mit dem Bot?



Hier sind Screenshots der beiden erstellten Handshake-Bots.
Ich werde einen dritten Bot versuchen und halte euch auf dem Laufenden.
Danke
Lionel

Neuer erfolgloser Versuch.

Selbe Fehlermeldung:
2022-01-11T22:47:04+0100 index.js:16 (process.) NotFoundError : Benutzer mit telegram_user_id « xxxxxxxxxx » nicht gefunden
at User.getByTelegramUserId (/src/server/lib/user/user.getByTelegramUserId.j s:33:11)
at async MessageHandler.newMessage (/src/server/services/telegram/lib/messag e.new.js:26:16)

Telegram-Aktualisierung:
https://core.telegram.org/bots/api#december-30-2021

30. Dezember 2021

Bot API 5.6

Ok @Mazshaka, wir versuchen, den Link manuell zu erstellen!

Gehe auf die Seite der Telegram-Integration und kopiere den Link zu Telegram, er sollte so aussehen:

https://telegram.me/NOM_DE_TON_BOT?start=UNE_CLE

Kopiere den Schlüssel am Ende und sende diese Nachricht an Gladys über deinen Telegram:

/start UNE_CLE

Das sollte den Link wiederherstellen…

Danach bin ich mir nicht sicher, ob das die Situation verbessern wird, denn soweit ich sehe, hast du das Emoji :waving_hand:, was bedeutet, dass Gladys den Link erfolgreich herstellen kann

Andere Möglichkeit, versuche, deine Gladys-Instanz neu zu starten, indem du per SSH folgendes ausführst:

docker restart gladys

(Das ist sozusagen die letzte Lösung, aber egal…)

@pierre-gilles vielen Dank für die Tipps.
Ich habe den Handshake erfolgreich durchgeführt, aber immer noch keine Antwort von Gladys.
Ich erhalte immer noch dieselbe Meldung in den Logs, selbst nach einem Docker-Neustart

NotFoundError: User with telegram_user_id « 508xxxxxx59 » not found
at User.getByTelegramUserId (/src/server/lib/user/user.getByTelegramUserId.js:33:11)
at async MessageHandler.newMessage (/src/server/services/telegram/lib/message.new.js:26:16)
}
2022-01-12T21:46:57+0100 index.js:16 (process.) NotFoundError: User with telegram_user_id « 508xxxxxx59 » not found
at User.getByTelegramUserId (/src/server/lib/user/user.getByTelegramUserId.js:33:11)
at async MessageHandler.newMessage (/src/server/services/telegram/lib/message.new.js:26:16)
2022-01-12T21:47:12+0100 index.js:15 (process.) unhandledRejection catched: Promise {
NotFoundError: User with telegram_user_id « 508xxxxxx59 » not found
at User.getByTelegramUserId (/src/server/lib/user/user.getByTelegramUserId.js:33:11)
at async MessageHandler.newMessage (/src/server/services/telegram/lib/message.new.js:26:16)
}
2022-01-12T21:47:12+0100 index.js:16 (process.) NotFoundError: User with telegram_user_id « 508xxxxxx59 » not found
at User.getByTelegramUserId (/src/server/lib/user/user.getByTelegramUserId.js:33:11)
at async MessageHandler.newMessage (/src/server/services/telegram/lib/message.new.js:26:16)
2022-01-12T21:48:06+0100 index.js:19 (Object.start) Starting Telegram service

Da bin ich jetzt komplett am Ende… Ich kann dein Problem nicht reproduzieren, und bei dir scheint beim Linking alles in Ordnung zu sein.

Ich weiß nicht, wie gut du dich auskennst, aber eine letzte Option wäre, in der DB zu schauen, was gespeichert ist.

Falls du dich gut auskennst, kannst du das machen:

Die DB von Gladys befindet sich im Ordner:

/var/lib/gladysassistant

Falls du Gladys stoppst:

docker stop gladys

Kannst du dann die Datei abrufen:

/var/lib/gladysassistant/gladys-production.db

Das ist eine SQLite-Datei, die du mit jedem Programm öffnen kannst (z. B.: https://tableplus.com/)

Danach kannst du in die Tabelle „t_user“ gehen und schauen, ob dein „telegram_user_id“ der richtige ist :slight_smile:

Falls es der richtige ist, bin ich ehrlich gesagt verloren, ich habe keine anderen Ideen :confused:

Telegram ID
Hallo,
@pierre-gilles vielen Dank, dass du dir die Zeit genommen hast, das Problem zu untersuchen.
Ich habe deine Anweisungen befolgt. Ich habe mich per FTP eingeloggt, um die Datei herunterzuladen und sie mit TablePlus zu öffnen.
Der Vorteil davon ist, dass ich dabei viel lerne :slight_smile:
Screenshot im Anhang.
Die ID ist korrekt, außer dem .0 am Ende
Könnte das davon kommen?
Danke
Lionel

Super! So sollte man es sehen :grin:

Die ID ist gut, außer der .0 am Ende
könnte das davon kommen?

Klar! Es muss einen Bug geben, entweder in der Telegram-Bibliothek, die wir verwenden, oder bei Gladys, wenn die ID registriert wird…

Kannst du die ID in TablePlus mit der richtigen ID deines Benutzers ersetzen und speichern?

Gladys stoppen.

Dann die SQLITE-Datei auf deinem Pi ersetzen

Gladys neu starten:

docker restart gladys 

Danach können wir untersuchen, warum dieser Bug auftritt (könntest du uns bitte ein Issue auf dem Gladys GitHub erstellen?)

Aber zumindest haben wir es gefunden!

Vielleicht sollte man hier das STRING durch ein INTEGER ersetzen?

Nein, im Gegenteil! Es muss eine String von Anfang bis Ende sein, auf keinen Fall ein Integer :slight_smile: Irgendwo muss eine falsche Umwandlung vorliegen.