python - 机器人回复时没有通知
问题描述
我写了一个简单的电报机器人,它从发送给它的消息中读取链接并回复一些信息。
用例如下:我正在 Safari 中查看某个页面,然后单击share
并将 URL 发送给机器人。
在这一点上,我希望看到带有信息的推送通知,但电报图标旁边出现了带有数字 1 的 onlu 徽章。
我正在使用 Python3.9 的常规 python-telegram-bot 库并使用 update.message.reply_text 回复消息
这是一个完整的代码:
import os
import re
from telegram import Update
from telegram.ext import Updater, MessageHandler, CallbackContext, CommandHandler
from telegram.ext.filters import Filters
TELEGRAM_API_KEY = os.getenv("TELEGRAM_API_KEY")
EXTERNAL_URL = os.getenv("EXTERNAL_URL")
def start_command_handler(update: Update, context: CallbackContext) -> None:
update.message.reply_text(f'Hello {update.effective_user.first_name}')
def message_handler(update: Update, context: CallbackContext) -> None:
exp = re.compile('https://example.com/(\d{7,})/\w+', re.IGNORECASE)
m = exp.match(update.message.text)
if m is None:
update.message.reply_text(f'Unable to recognize a link')
return
lines = ["here is your result:"]
# some magic here
update.message.reply_html('\n'.join(lines))
def main():
u = Updater(TELEGRAM_API_KEY)
u.dispatcher.add_handler(CommandHandler('start', start_command_handler))
u.dispatcher.add_handler(MessageHandler(Filters.text & Filters.chat_type.private, message_handler))
u.start_webhook(listen='0.0.0.0', port=80, webhook_url=EXTERNAL_URL)
u.idle()
if __name__ == '__main__':
main()
解决方案
推荐阅读
- java - 使用条件实现搜索过滤器
- python - 高斯混合模型_Scikit Learn_如何拟合单D数据?
- php - 您是否需要 Composer for async PHP 和像 ReactPHP 或 Swoole 这样的 HTTP 服务器?
- angular - 如何将 Angular 应用程序中的元素滚动到带有粘性标题的视图中?
- python - discord.py - 命令引发异常:OpusNotLoaded
- android - 为移动设备提供图像的最佳方法
- angular - 使用 ngModel 将 kendo 下拉菜单绑定到插值会导致错误
- dc.js - 使用 dc.js numberDisplay 进行计算
- c# - 使用实体框架在数据库中设置授权
- shell - Shell节点:没有这样的文件或目录