我正在尝试找出是否有特定的User
出现在一个超级组中,以便跟踪那些离开的人。
为此,我调用 Bot API 方法getChatMember
对于每个User
并检查他们的状态是否是Left
or Kicked
。然而,我注意到(最近?)我得到了USER_ID_INVALID
许多人的错误valid位于超级组中或曾经在超级组中然后离开的用户。我还确认这些帐户是仍然活跃在电报上。
这是我发送的 HTTP 请求:
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}
这是我得到的回应:
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"}
无论从哪个角度来看,这对我来说都是一个完全有效的请求。而且我无法找到引发此错误的用户之间的共同模式。
我在这里缺少什么?
EDIT:正如 @sean 指出的那样,让其中一位用户私下向机器人发送消息修复了错误对于该特定用户. 但我绝对确定以前见过该用户,因为这就是我获取他的用户 ID 的方式。什么可能导致机器人“忘记”他?我将如何防止这种情况在未来发生?