2015-07-31 1 views
3

Je souhaite créer un bot de télégramme pour l'abonnement de flux, afin que les abonnés puissent obtenir une mise à jour du site. Mais j'ai besoin d'un utilisateur pour commencer à discuter avec mon bot. J'utilise des liens profonds selon cette url: https://core.telegram.org/bots#deep-linking (en supposant qu'il ya 2 utilisateurs)Télégramme Bot: utilisation de la méthode offset dans la méthode getUpdates

  1. Afficher le lien ci-dessous pour l'utilisateur # 2 https://telegram.me/MyBot?start= UNIQUE_CODE $
  2. utilisateur # 2 clics sur le lien et le démarrage discuter avec bot.
  3. L'utilisateur n ° 2 revient sur mon site et clique sur le bouton de vérification.
  4. Le site effectue une requête getUpdates et trouve le chat_id associé au code unique de l'utilisateur.
  5. offset sera augmenté de 1.

Maintenant, il y a un problème. Lorsque le décalage augmente ce qui concerne l'utilisateur n ° 1 qui commence à discuter avec bot juste avant l'utilisateur n ° 2. Si # 1 clique sur le bouton de vérification après avoir augmenté le décalage de # 2, le bot ne recevra pas le message # 1.

p.s. Je ne veux pas utiliser ssl et webhook

Désolé pour un mauvais anglais.

+0

Je pense que vous devriez lire à nouveau telegram getUpdates api. – hamed

+0

@hamed merci. Je l'ai lu plusieurs fois mais je n'arrive pas à le comprendre. –

+0

vous n'avez pas besoin de montrer à chaque utilisateur un lien unique, chaque utilisateur a un identifiant unique et vous pouvez l'utiliser où vous en avez besoin – hamed

Répondre

2

Vous avez presque raison dans ce que vous essayez d'atteindre. Deux choses:

  • L'étape 3 est inutile.
  • Vous devriez stocker ce $ unique_id quelque part, avec le nom d'utilisateur de l'utilisateur sur votre site web. Puis, lorsque cette personne clique sur votre lien avec votre identifiant unique, vous pouvez lier l'ID utilisateur de l'utilisateur au nom d'utilisateur de l'utilisateur.

Ainsi, les étapes deviennent:

  1. Générer un code unique (appelons-le $ UNIQUE_CODE). Enregistrer ce code avec le nom d'utilisateur de la personne actuellement connecté (e) à votre site web (appelons ce $ username) dans une base de données.
  2. Afficher l'utilisateur # 2 un lien avec ce code unique (https://telegram.me/MyBot?start= de UNIQUE_CODE de $)
  3. L'utilisateur clique sur le lien, après quoi votre bot reçoit un message avec le UNIQUE_CODE de $ ('/ start $ UNIQUE_CODE').
  4. Le bot associe le code $ unique à $ username et stocke le chat_id de l'utilisateur qui a envoyé le message dans la base de données. (Message.chat.id - voir https://core.telegram.org/bots/api#message)

Maintenant, chaque fois que vous voulez envoyer un message à nom d'utilisateur $, il suffit de regarder leur chat_id dans la base de données et envoyer un message à ce chatId (https://core.telegram.org/bots/api#sendmessage).