Echange Telegram impossible

Bonjour,
Je viens d’installer la dernière version de Gladys.
J’ai voulu tester l’intégration de Telegram.
Je n’arrive pas à “parler” à Gladys.

J’ai fait:
docker logs gladys
Je vois dans les logs une erreur :
User with telegram_user_id "xxxxxxxxxx" not found
Erreur Telegram

Auriez vous une idée du problème ?

Merci pour votre aide,

Cdt,
Lionel

Bonjour.

Est-ce que tu as suivi la documentation ici ? Telegram | Gladys Assistant
Est-ce que tu es sûr de ton username ? Tu peux envoyer le message /start au bot @userinfobot et c’est bien l’ID qu’il faut récupérer.

Effectivement je pense que tu n’as pas cliqué sur le lien dans Gladys qui envoie le message /start !

Bonjour,
Merci pour vos retours ultra rapide.
Pour le coup j’ai créé un nouveau bot et refait la procédure pour être sûr. Sans succès.
Du coup je ne sais pas quoi faire.
Je vais vérifier l’ID via @userinfobot ce soir.
Mais existe t il un moyen de le modifier manuellement ?
Merci
Cdt,
Lionel

Facilement, non. Tu ne devrais pas avoir à le faire si la configuration fonctionne bien.

Mais cela pourrait nous aider à débugguer.

@Mazshaka Le problème là c’est pas le bot, c’est que tu n’as pas du faire le process de link entre Telegram et Gladys

Est-ce que tu as bien dans Gladys cliqué sur le lien, qui t’a redirigé vers Telegram, puis t’as fais envoyer un message en cliquant sur un bouton “start” ?

Bonsoir,

J’ai vérifier l’ID donnée dans le message d’erreur est bien le mien.
Donc je comprends que c’est la synchronisation telegram/gladys qui pose problème.
Lors de l’initialisation j’ai téléchargé Telegram sur mon PC. Il m’a proposé de scanné un QR code avec mon téléphone. Ce que j’ai fait.
J’ai créé mon bot, renseigné la clé API dans Gladys, cliqué sur la génération du lien et cliquer sur send message.
Il est possible que j’ai loupé un truc même si il me semble avoir bien fait les choses.
Toujours est il que je suis bloqué sans trop d’idée de comment résoudre ce problème … :sweat_smile:

Je viens de supprimer mon bot et de refaire les mêmes manipulations et ça marche.
Est-ce que le premier message que tu envoies au bot, c’est bien /start?

ça me semble bon effectivement, par curiosité tu utilise quelle application Telegram quand tu clique sur « send message » ?

Quand tu envoie le 1er message, est-ce que Gladys te répond avec un message « 👋 » ? Est-ce que tu as des logs spéciales ?

Ce qu’on ne voit pas lors de l’initialisation, c’est que lorsqu’on redirige vers Telegram avec le lien généré depuis Gladys, un token spécial est ajouté et lorsque tu envoie le message /start, le token est envoyé ensuite dans ton message de démarrage, ce n’est pas juste un message contenant /start (Telegram masque le token) et Gladys l’utilise ensuite pour faire le lien entre ton compte Gladys et ton compte Telegram.

Donc il est bien important d’ouvrir le lien sur le même appareil ou Telegram est installé, c’est bien ce que tu fais ?

Ton lien doit ressembler à ça:

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

La clé à la fin est celle qui est utilisée pour le deep linking.

Bonjour,
Merci encore pour la rapidité des retours. J’ai essayé de lire un peu la doc de l’api Telegram hier pour mieux comprendre mais je me suis vite perdu :sweat_smile:.
Lors des 2 création de bot j’ai bien eu le hand Shake :wave:.
J’ai tenté d’abord d’échanger avec Telegram sur PC (suite ouverture de la page à l’initialisation) puis via le téléphone.
Je vais essayer à nouveau ce soir en créant un nouveau bot et une nouvelle clé API.
En // j’ai lu que Telegram avait des MaJ. Notamment côté authentification. Mais je ne sais pas si cela a des impacts.
Merci
Lionel

Très bizarre parce que si tu as l’emoji main :wave:, c’est que le linking s’est fait avec succès !

Tu as un screenshot de ta discussion avec le bot ?



En screenshot les 2 handshake des bots créés.
Je vais essayé un 3ième bot et je vous tiens informé.
Merci
Lionel

Nouvel essai infructueux.

Même message d’erreur :
2022-01-11T22:47:04+0100 index.js:16 (process.) NotFoundError : User with telegram_user_id “xxxxxxxxxx” not found
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)

MàJ Telegram:
https://core.telegram.org/bots/api#december-30-2021

December 30, 2021

Bot API 5.6

Ok @Mazshaka, on va essayer de faire le link manuellement !

Va sur la page de l’intégration Telegram, et copie-colle le lien vers Telegram, il doit ressembler à ça:

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

Copie colle la clé à la fin, et envoie ce message à Gladys via ton Telegram:

/start UNE_CLE

ça devrait refaire le linking…

Après, je suis pas certain que ça va améliorer la situation, parce que d’après ce que je vois, tu as bien l’emoji :wave:qui signifie que Gladys arrive bien à faire le link

Autre possibilité, essaie de redémarrer ton instance Gladys, en faisant en SSH:

docker restart gladys

(c’est un peu la solution de la dernière chance, mais bon…)

@pierre-gilles merci pour les astuces.
j’ai bien eu le handshake mais toujours pas de réponse de Gladys.
Je reçois toujours le même message dans les logs même après un docker restart

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

Pour le coup là je sèche complet… J’arrive pas à reproduire ton problème, et tout a l’air de bien se passer chez toi au niveau du linking.

Je ne sais pas à quel point tu t’y connais, une dernière option serait d’aller voir en DB ce qui est sauvegardé.

Si tu t’y connais assez, tu peux faire ça:

La DB de Gladys est situé dans le dossier:

/var/lib/gladysassistant

Si tu stoppe Gladys:

docker stop gladys

Tu peux ensuite récupérer le fichier:

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

C’est un fichier SQLite que tu peux ouvrir avec n’importe quelle logiciel (ex: https://tableplus.com/)

Ensuite tu peux aller dans la table “t_user”, et regarder si ton “telegram_user_id” est bien le bon :slight_smile:

Après si c’est bien le bon honnêtement je suis perdu, j’ai pas d’autres idées :confused:

Telegram ID
Bonjour,
@pierre-gilles merci d’avoir pris le temps d’étudier le problème.
j’ai suivi tes indications. je me suis connecter en FTP pour récupérer le fichier et l’ouvrir avec tableplus.
L’avantage de tout celà c’est que j’apprends plein de choses :slight_smile:
Screenshot en PJ.
L’ID est bon à l’exception du .0 à la fin
est ce que ça pourrait venir de là ?
Merci
Lionel

Tant mieux ! Il faut le prendre comme ça :grin:

L’ID est bon à l’exception du .0 à la fin
est ce que ça pourrait venir de là ?

Clairement ! Il doit y avoir un bug de type soit dans la lib telegram qu’on utilise, soit côté Gladys au moment où on enregistre l’ID…

Est ce que tu peux remplacer l’ID dans TablePlus avec le bon ID de ton utilisateur, enregistrer.

Stopper Gladys.

Puis remplacer le fichier SQLITE sur ton Pi

Relancer Gladys:

docker restart gladys 

Ensuite on enquêtera pourquoi ce bug arrive (si tu peux nous créer une issue sur le GitHub Gladys d’ailleurs ?)

Mais au moins on a trouvé !

Peut-être qu’il faudrait remplacer le STRING par un INTEGER ici ?

Non au contraire ! Il faut que ce soit une string de bout en bout, surtout pas un integer :slight_smile: Il doit y avoir une mauvaise conversion quelque part.

1 « J'aime »