2017-10-05 123 views
0

基本上我試圖理解這個api是如何工作的,通過執行以下操作我無法將消息傳遞到我的頻道(我'從我的電報賬戶發送/測試命令)。另外,我如何使用JobQueue並每隔3小時發送一次自動消息,例如?文檔說明不適用於我。使用電報bot api,python 3和JobQueue發送消息的方法

def test(bot, update): 
    update.send_message(chat_id='@channelid', text='this is a test') 

def main(): 
    # Create the EventHandler and pass it your bot's token. 
    updater = Updater("457160310:AAFlxrH2uAaOMGrgO0suOXFM2gVKywsUL0E") 
    dp = updater.dispatcher 

    dp.add_handler(CommandHandler("test", test)) 

    dp.add_error_handler(error) 

    updater.start_polling() 

    updater.idle() 


if __name__ == '__main__': 
    main() 
+0

請注意,你添加了令牌。如果它仍然有效,請考慮通過@botfather – 91DarioDev

回答

0

對於按時間間隔發送消息的作業實現,您可以閱讀this page這是充滿了示例。有人應該是你想要做的事情。

關於命令的事情,我認爲圖書館沒有得到來自相關渠道的命令,這樣您可以考慮:

  • 在私人聊天發送命令到機器人和機器人發送回覆通道(在我看來更好的東西)從通道(不是命令)

  • 處理的消息和檢查,如果該消息的文本包含命令

我會建議第一個解決方案,這樣你甚至可以保持通道清潔

+0

更改它是的,我知道這個頁面,問題是這些例子根本不起作用。至於你的第一個考慮,那就是我試圖用我發佈的這段代碼來做的事情:從我的個人帳戶中私下發送命令,以便機器人可以,而不是迴應我,迴應頻道。 – user3927607

+0

@ user3927607第一件事我沒有看到你的代碼中的工作,所以我不能說出了什麼問題。對於測試函數中的最後一件事,請使用bot.send_message而不是更新。它應該工作 – 91DarioDev

+0

使用「bot.send_message」修復了這個問題!非常感謝。現在關於這個工作:代碼中沒有任何工作,因爲我不知道在哪裏實現它:我應該將工作放在主函數中,並讓這個工作調用另一個函數(例如測試)? – user3927607