2016-12-27 249 views
3

我想清除我的機器人中的所有pending_update_count清除Telegram Bot中的「​​pending_update_count」

以下命令的輸出:

https://api.telegram.org/botxxxxxxxxxxxxxxxx/getWebhookInfo 

很顯然,我替換XXX真正的API令牌

是這樣的:

{ 
"ok":true,"result": 
    { 
    "url":"", 
    "has_custom_certificate":false, 
    "pending_update_count":5154 
    } 
} 

正如你所看到的,我有5154未讀更新直到現在! (我很確定這個未決的更新是錯誤的!因爲沒有人使用這個機器人!它只是一個測試機器人)

順便說一句,這pending_update_count號碼增加得這麼快! 現在我寫這篇文章的人數增加了51,達到了5205!

我只是想清除此掛起的更新。 我很確定這個殭屍已經陷入了無限循環!

有什麼辦法擺脫它嗎?

P.S:

我也清除了webhook網址。但沒有任何改變!

UPDATE:

getWebhookInfo輸出是這樣的:

{ 
    "ok":true, 
    "result":{ 
     "url":"https://somewhere.com/telegram/webhook", 
     "has_custom_certificate":false, 
     "pending_update_count":23, 
     "last_error_date":1482910173, 
     "last_error_message":"Wrong response from the webhook: 500 Internal Server Error", 
     "max_connections":40 
    } 
} 

爲什麼我得到Wrong response from the webhook: 500 Internal Server Error

+0

是你的機器人**呼應**消息?這是我能想到的唯一原因 –

+1

什麼阻止你得到這個更新和清除計數器? – anatol

+0

請參閱更新 –

回答

5

我認爲你有兩個選擇:

  1. 集網絡掛接什麼也不做,只是說200確定以電報的服務器。電報將發送所有更新到這個URL並且清除隊列。
  2. 禁用網絡掛接,並在其後用getUpdates方法後,再次打開網絡掛接獲得更新

更新:

問題的就在你身邊網絡掛接。您可以嘗試在您的URL上模擬電報的POST查詢。 它可以是這樣的:

{"message_id":1,"from":{"id":1,"first_name":"FirstName","last_name":"LastName","username":"username"},"chat":{"id":1,"first_name":"FirstName","last_name":"LastName","username":"username","type":"private"},"date":1460957457,"text":"test message"} 

您可以通過郵遞員發送這條短信的POST查詢的身體,例如,和之後嘗試調試後端。

+0

方法2不適合我,我不知道我可能會做錯什麼,因爲我使用getupdates獲取信息,但再次打開webhook並不能解決問題。 方法1我不知道如何實現它,是設置webhook的問題,還是在哪裏? – Waclock

2

只需在鉤子方法的末尾添加return 1;即可。