如何使用telegram bot api在群聊中接收消息

时间:2016-07-25 10:59:16

标签: telegram-bot

我的电报机器人在私人聊天中接收用户发送给我的机器人的消息,但不接收用户在群聊中发送的消息。用于获取群聊信息的任何选项/ api,。

6 个答案:

答案 0 :(得分:43)

@botfather对话并停用隐私模式。

答案 1 :(得分:30)

BotFather聊天中的顺序:

:/ setprivacy

BotFather :选择机器人来更改群组消息设置。

:@your_name_bot

BotFather :'启用' - 您的机器人只会收到以'/'符号开头的消息或通过用户名提及机器人的消息。

'禁用' - 您的机器人将收到人们发送给群组的所有消息。

当前状态为:已启用

:禁用

BotFather :成功!新状态为:DISABLED。 /帮助

答案 2 :(得分:2)

通过管理员分组管理您的机器人。

答案 3 :(得分:0)

默认情况下,僵尸程序将仅接收任何用户直接通过/command@YourBot any message you send发布的发给它的消息。 之后,它可以通过getUpdates API调用使用。 在浏览器中它将是:

https://api.telegram.org/botToken/getupdates

在输出JSON中找到相关消息并获取chatId。它将允许您通过以下方式回覆:

https://api.telegram.org/botToken/sendmessage?chat_id=123456788&text=My Answer

答案 4 :(得分:0)

您可以通过向/mybots发送Botfather来访问所有漫游器的所有可用设置。选择漫游器,然后选择 Bot设置组隐私。如果已禁用(默认),则可以点击关闭

现在可以使用GetUpdates接收聊天记录了。这可以通过HTTP API或框架来完成。例如,在C#(.NET Core)中如下所示:

var bot = new TelegramBotClient(ApiToken);
var updates = bot.GetUpdatesAsync().Result;
foreach(var update in updates) {
    Console.WriteLine($"{update.ChannelPost.Date} {update.ChannelPost.Text}");
}

但是请记住,此功能实现了某种完美的前向保密性。因此,仅在禁用组隐私后 会收到发送的消息。结果,GetUpdates结果为空,直到发布了一些帖子。

答案 5 :(得分:0)

如果您在禁用隐私模式之前添加了您的机器人,您应该将机器人从群组中移除并重新添加