我正在開發一個 python 電報機器人,我有一個始終在運行的腳本(用於從電報接收新命令),我希望機器人在用戶在網站上執行操作時發送消息。示例:用戶啟動機器人,機器人發送鏈接以在網站上執行操作(例如登錄用戶帳戶並將電報 ID 與用戶 ID 關聯),然後在電報上發送確認消息,一切正常。
我的問題是如何告訴 python 腳本瀏覽器中的操作已完成?現在我一直在查詢數據庫,但我的解決方案非常愚蠢,因為如果用戶不執行任何操作,查詢就會永遠進行。
任何建議如何正確地做到這一點?謝謝 <3
我在這裡看到兩個可行的解決方案:
直接從網站發送消息。雖然一次只允許一個進程獲取更新,但您可以根據需要從任意數量的服務器發出其他請求。根據您網站的工作方式,您可以向 Bot API 發出純 HTTP 請求,或使用類似 API 包裝器python-telegram-bot
或不同語言的包裝器來發出請求。例如,如果您運行的是基於 php 的網站,則可以使用 php API 包裝器。
如果由於某種原因 1. 不適合您,您可以嘗試通知您的運行進程有關用戶登錄的信息。PTB 常見問題中有一個條目可以幫助您入門。如果您的網站和機器人在同一台服務器上運行,則可以update_queue
直接將其提供給網站進程使用。如果沒有,您可以嘗試為您的機器人設置一個 webhook 並向 webhook 發布更新,然後您將其排入隊列update_queue
方法 1. 的缺點是您沒有將所有機器人邏輯放在一個地方,但它應該比方法 2 更容易實現。
免責聲明:我目前是 python-telegram-bot
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句