当前位置: 首页 > 知识库问答 >
问题:

内联模式在python编写的电报机器人中无法工作

端木弘方
2023-03-14

我是用Python编写机器人程序的新手。我创建了一个简单的bot@kawaikx_bot,它有一个/start命令,可以回复任何文本输入。

from telegram.ext import *
from datetime import datetime

weekdays = [0, 1, 2, 3, 4]
API_KEY = '********************************'


def start_command(update, context):
    name_of_day = datetime.today().weekday()
    if name_of_day in weekdays:
        reply = f"\U00002712 Its a weekday today"
        update.message.reply_text(reply, parse_mode='html')
    else:
        reply = f"&#x1F48E; <b>Its holiday</b>."
        update.message.reply_text(reply, parse_mode='html')
 


def handle_message(update, context):
    name_of_day = datetime.today().weekday()
    if name_of_day in weekdays:
        reply = f"\U00002712 Its a weekday today"
        update.message.reply_text(reply, parse_mode='html')
    else:
        reply = f"&#x1F48E; <b>Its holiday</b>."
        update.message.reply_text(reply, parse_mode='html')


def main():
    updater = Updater(API_KEY)
    dp = updater.dispatcher
    dp.add_handler(CommandHandler('start', start_command))
    dp.add_handler(MessageHandler(Filters.text, handle_message))
    updater.start_polling()
    updater.idle()

main()

我还启用了内联模式。我试图通过呼叫bot name和一些文字@kawaikx\u bot hello,从一个bot不是成员的群聊中向这个bot传递一条消息。但它没有发送回复。

我期待着回复“今天是工作日”

你能帮我找出我的代码有什么问题吗?

提前感谢

共有1个答案

连鸿
2023-03-14

CommandHandler和MessageHandler只能捕获包含消息的更新。请查看官方API文档的这一部分以及PTB示例。你还应该查一下相关的课程

免责声明:我目前是python-电报-机器人的维护者。

 类似资料:
  • 这不是重复的:| 我添加了一个用于管理goup的新机器人。通过此信息: 我的机器人是管理员 我的机器人隐私被禁用 “启用”-您的机器人只会接收以“/”符号开头或通过用户名提及机器人的消息。“禁用”-您的机器人将接收人们发送到组的所有消息。当前状态是:禁用成功!新状态是:禁用 bot可以读取除其他bot消息外的所有成员!但可以在回复中看到信息。 我的tg api是:https://github.co

  • 我的电报机器人是用煤气做的,但我的自定义键盘不工作。我的functon发送消息如下。谢谢 VAR有效载荷={'method':'sendMessage','chat_id': String(chat Id),'text': text,'parse_mode':'超文本标记语言'} }

  • 我不想使用getUpdate方法从Telegram检索更新,而是使用网络钩子。 getWebhookInfo的错误是: 我的代码是: 当我点击https://www.mydomain.ext:8443/时,当我在telegram-bot chat上写东西时,我可以看到收到请求,但不能发布请求,这也是我如何为telegram设置webhook的原因,如下所示: 结果: 有什么建议或我做错了什么事吗?

  • 我无法理解电报机器人api的Reply_to_message方法。以下是我的代码: 这里,当用户发送/启动机器人发送hello world文本。我想让用户回复发送hello world的消息。我的意思是当用户发送/启动机器人回复信息的文本“你好,世界!” 我使用网络钩子。

  • 在向用户发送sendInvoice后(用户正确获取此支付表单),我的bot无法接收用于付款确认的preCheckoutQuery。我试图通过webhook接收来自Telegram Bot的更新(特别是preCheckoutQuery),但这里: dev.botframework.com- 另外,当我尝试在我自己的机器人 dev.botframework.com 上设置网络钩子并检查获取Webhoo

  • 我正在用电传制作电报机器人。 群聊消息以/开头时使用处理程序。 有没有办法获取所有群聊消息?