Telegram Bot API: getChatMember throws USER_ID_INVALID for valid user

£可爱£侵袭症+ 提交于 2019-12-06 03:01:18

问题


I'm trying to find out if a specific User is present in a supergroup, in order to keep track of those who left.

For that, I'm calling the Bot API method getChatMember for each User and checking if their status is either Left or Kicked. However, I noticed that (recently?) I'm getting USER_ID_INVALID errors for many valid users that are either in the supergroup or have been in the past and then left. I also confirmed that those accounts are still active on Telegram.

Here's the HTTP request I'm sending:

POST https://api.telegram.org/botXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXX/getChatMember HTTP/1.1
Connection: Keep-Alive
Content-Type: application/json; charset=utf-8
Content-Length: 46
Host: api.telegram.org

{"chat_id":-0000000000000,"user_id":000000000}

And here's the response I'm getting:

HTTP/1.1 400 Bad Request
Server: nginx/1.12.2
Date: Fri, 20 Apr 2018 04:17:32 GMT
Content-Type: application/json
Content-Length: 74
Connection: keep-alive
Access-Control-Allow-Origin: *
Access-Control-Expose-Headers: Content-Length,Content-Type,Date,Server,Connection

{"ok":false,"error_code":400,"description":"Bad Request: USER_ID_INVALID"}

Any way I look at it, it looks like a perfectly valid request to me. And I haven't been able to find a common pattern between the users that throw this error.

What am I missing here?

EDIT: As @sean pointed out, having one of those users message the bot privately fixed the error for that particular user. But I'm absolutely sure that user was seen before because that's how I got his user ID. What could have caused the bot "forget" about him and how would I prevent this from happening in the future?


回答1:


This error means your bot haven't seen this user before.

For instance, my user ID is 109780439, you can try getChatMember with @PublicTestGroup, it should response with 400 error.

And then, forward ANY of my message (e.g., this) to your bot, you will see the different result :)



来源:https://stackoverflow.com/questions/49934454/telegram-bot-api-getchatmember-throws-user-id-invalid-for-valid-user

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!