JayJona
JayJona

Reputation: 502

How to delete a Telegram user id when user delete the chat of the bot

I'm building a telegram bot using pyTelegramBotAPI libraries, I wanted to know if there is a way to know when a user deletes a chat with my bot, so the bot will not send more messages towards that specific id. reading the telegram API I found nothing, can you help me?

Upvotes: 0

Views: 2030

Answers (2)

newsha
newsha

Reputation: 1438

EDIT: Bot API 5.1 introduces a new update type represented by ChatMemberUpdated class.

When a user blocks your bot you will now receive an update looking like this:

{
   "update_id":111627970,
   "my_chat_member":{
      "chat":{...},
      "from":{...},
      "date":1116140500,
      "old_chat_member":{...},
      "new_chat_member":{
         "user":{...},
         "status":"kicked",
         "until_date":0
      }
   }
}

Handle this update accordingly. It has all relevant information to let you exclude a user, who has blocked your bot.

Old answer:

Sadly you can't know when a user has deleted a chat with your bot.

You can keep sending messages though. Eventually the user will block your bot.

Trying to send a message to a user who has blocked your bot will give you HTTP status code error 403.

403: Forbidden: bot was blocked by the user

Only then you can safely delete a user's chat_id from your list.

Upvotes: 3

Seyfi
Seyfi

Reputation: 1980

As I know, there is no way. When you chat with a friend, is there any way to know that he/she has deleted the chat page of you? NO.

Telegram bot is completely similar to simple chat in this case up to this date. It doesn't have considered in Telegram Bot API up to this date.

Upvotes: 1

Related Questions