我的电报机器人无法读取其他电报机器人发送的消息

时间:2018-10-04 11:46:23

标签: java botframework bots telegram telegram-bot


我有两个用Java编写的Telegram机器人。
第一个机器人每10分钟发送一些消息。 (有效)。
第二个机器人必须阅读此发送的消息,并将其存储到txt文件...
但是问题是第二个机器人看不到此消息...
他只看到了来自USERS的消息。
M-机器人
YR-用户
Chat image
Console result



Here说,如果

  

BotFather => Bot =>设置=>组隐私=>禁用隐私模式,并且> BotFather => Bot => Settings =>允许组? =>当前已启用组

机器人必须看到彼此发送的消息。
我做到了,机器人也被邀请加入具有管理员权限的新组。
这里的代码示例(第二个机器人):

public class TelegramBot extends TelegramLongPollingBot {

public final String BOT_TOKEN = "****************************";
public final String BOT_NAME = "*****************";

@Override
public void onUpdateReceived(Update update) {
    long inChatID = 0;
    int inMessID = 0;
    String inText = "";
    try {  // from chanel
        inChatID = update.getChannelPost().getChatId();
        inText = update.getChannelPost().getText();
        inMessID = update.getChannelPost().getMessageId();
    } catch (Throwable t1) {};
    try {  // from chat
        inChatID = update.getMessage().getChatId();
        inText = update.getMessage().getText();
        inMessID = update.getMessage().getMessageId();
    } catch (Throwable t2) {};

    System.out.println(inChatID);
    System.out.println(inMessID);
    System.out.println(inText);
}

@Override
public String getBotUsername() {
    return BOT_NAME;
}

@Override
public String getBotToken() {
    return BOT_TOKEN;
}
}

如果我发送任何类似用户的消息,我将进入控制台ChatID,MessID,文本...
但是如果第一个机器人发送了一些消息,我什么也没得到。帮助我解决这个问题。
有什么建议我犯错了吗?

1 个答案:

答案 0 :(得分:1)

我通过将这两个漫游器添加到具有管理员权限的频道来解决了此问题。 它与GROUP CHAT不兼容。 现在,我可以看到其他机器人发送的消息。 但是还有另一个问题:通道中任何漫游器发送的所有消息都会抛出类似通道​​消息的消息,但没有Bot ID,Bot名称等。 因此,我只能读取消息文本并进行解析。