Telegram-“只能给双向联系人发送消息”的错误信息

问题:
在这里插入图片描述
解决方法:
1.搜索机器人 @spambot
2.回答机器人 “But I can’t message non-contacts”
3.接下来又提供了选项,直接点击“No, I’ll never do any of this!”
4.最后机器人会让你提供详细信息,再随便回复一下bot。比如“I don’t known”
5.差不多一个小时候后就可以解决这个问题了。

Telegram Bot API 中,如果你想要群组收到用户消息时直接回复用户而不是新发送一条消息,你需要利用 `InlineKeyboardMarkup` 和 `EditMessageReplyMarkup` 功能。当你设置机器人监听群组消息时,可以获取到消息事件并检查是否是来自用户的私聊更新。如果是私聊更新,你可以使用 `edit_message_text` 或 `edit_message_caption` 方法来更新原有消息,显示用户的个人信息。 以下是一个基本步骤概述: 1. **监听消息**:当接收到新的群组消息时,检查消息来源是否是私聊。 2. **获取用户数据**:如果是在私聊中,使用 `get_chat_member` 函数获取用户的详细信息。 3. **编辑消息**:使用 `edit_message_reply_markup` 更新原消息,内容包含用户的个人资料,如用户名、头像链接等。 4. **构建回复**:创建一个适当的 `InlineKeyboardMarkup`,可能包括用户的基本信息按钮,以便用户能进一步交互。 ```python from telegram.ext import Updater, CommandHandler, MessageHandler, Filters, InlineQueryHandler def handle_user_info(update, context): user = update.effective_chat.get_members(filter=Filters.user(update.effective_user.id))[0] reply_text = f"欢迎,{user.first_name}! 你的ID是: {user.id}" context.bot.edit_message_text(chat_id=update.message.chat_id, message_id=update.message.message_id, text=reply_text) updater = Updater(token='YOUR_BOT_TOKEN', use_context=True) dp = updater.dispatcher # 添加消息处理器 dp.add_handler(MessageHandler(Filters.private & ~Filters.command, handle_user_info)) updater.start_polling() ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值