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

Telegram Webhook不从群聊中发送文本

孙凌龙
2023-03-14

我正在运行一个使用Webhooks查询AWS Lambda函数的电报机器人。在与机器人的私人对话中,它的功能与预期的一样。然而,在群组聊天中,机器人无法回应。特别是,当从组接收更新时,Message对象缺少text字段(即没有与来自组聊天的消息相关联的文本)。

    null
import requests
import json

def lambda_handler(event, context):
    # get the request body from API gateway
    body = json.loads(event['body'])

    token = 'my secret token'
    URL = "https://api.telegram.org/bot{}/".format(token)
    chat_id = body['message']['chat']['id']

    # This if statement is triggered for EVERY group chat message the bot receives
    # which is the error I'm trying to debug
    if 'text' not in body['message']:
        return { 'statusCode': 500 }

    # this only works for direct messages
    message = body['message']['text']

    send_url = URL + "sendMessage?text={}&chat_id={}".format(message, chat_id)
    requests.get(send_url)

    response = {
        "statusCode": 200
    };
    return response

下面是从群组聊天中接收到的消息对象的样子(注意,它没有text字段:

{
    "message_id":27,
    "from":{
       "id":id_number,
       "is_bot":False,
       "first_name":"Jafer",
       "last_name":"",
       "username":"username",
       "language_code":"en"
    },
    "chat":{
       "id":-id_number,
       "title":"test",
       "type":"group",
       "all_members_are_administrators":True
    },
    "date":1603138229,
    "group_chat_created":True
 }

以下是我已经查看过的关于stackoverflow的一些资源:

  • 允许机器人访问电报组消息
  • Python telegram bot(Telepot)群聊

由于我试图在无服务器环境中运行该机器人,因此不能使用这里建议的轮询机制:电报机器人-如何获得群组聊天ID?

我将非常感谢一些帮助理解为什么我的机器人与群聊斗争!谢谢!

共有1个答案

端木承业
2023-03-14

转储的响应具有“group_chat_created”:true,它是一条服务消息,通常没有任何文本。这些消息是在创建组(组的第一条消息)时创建的。

医生说,

 类似资料:
  • 当我的机器人检测到在聊天中发送文档时,我希望它发送一条消息。 我添加了一个带有文档筛选器的消息处理程序。 代码直接用于聊天到机器人, 但是如果我将机器人添加到一个组中,如果我在组中发送了一个文档,机器人将没有响应。 为什么当我在组中发送文件时机器人没有响应?谢了!

  • 1.发送文本消息到聊窗内 小能sdk支持发送自定义的纯文本内容到聊窗内。例如用户可以在打开聊窗前调用此方法,即可在打开聊窗后发送一条自定义的文本消息。 /** * @param msgs 发送的消息内容 */ Ntalker.getInstance().sendNMsg(String msgs);

  • 群聊是企业办公中最见的沟通场景,企业微信的群聊管理可以帮助成员在提高群聊沟通效率的同时,保证群聊信息的安全。 群聊人数设置 设置入口:【管理后台】>【我的企业】>【聊天管理】查看 群聊人数上限设置范围为5-2000人 支持添加白名单,白名单中的成员可发起超过上限的群聊,但不可超过2000人。 群聊水印设置 设置入口:【管理后台】>【我的企业】>【安全与保密】查看 聊天显示水印开启后,单聊及群聊会话

  • 会话首页点击添加“+”入口,点击“创建群聊”,即可选择成员组建群聊,选择企业成员默认创建的为企业群,如果有员工离职会自动踢群,避免企业信息泄露; 如选择的成员中有非企业成员,可根据提示选择要创建的是“普通群聊”还是“企业群聊” 群聊人数最多支持1000人               

  • 我正在使用PodSixNet和tkinter创建聊天服务器/客户端,我的问题是当我按“发送”向聊天室中的其他用户发送消息时,该消息不会显示在文本小部件中。 如果我使用注释掉的代码:消息将在控制台上很好地打印出来,但我无法将其显示在GUI上。我真的不知道如何着手解决这个问题。下面是我的客户端的代码,它是python 3.6。 聊天客户端 编辑:这是服务器的代码,以备需要。 聊天服务器

  • 轻推中的群聊分外部群,企业私有群,部门群和全员群。其中外部群、企业私有群可有成员自行创建,部门群、全员群由企业管理员进行创建。 外部群:不受企业限制,可以邀请好友,同事,访客一起来沟通的群 企业私有群:对于企业内敏感信息或保密信息,可创建企业私有群。只添加相关人员,其他人既看不到,也无法加入,保证安全,放心沟通。 部门群:部门群只能由企业管理员创建,部门群人数的变动会根据部门人员自动变化。部门群仅