Telegram bot向特定的人发送私人消息

时间:2018-04-26 22:40:25

标签: java bots telegram telegram-bot

我是用java构建的 电报机器人 这基本上得到了用户的名字 它可以是1或10或甚至40(我限制为50)取决于你想要放多少 现在,当您完成特定用户时,此僵尸程序的目的就在以后 你写了一条消息发送给他们

现在一切都工作完善,id名称得到保存以及消息 虽然 我如何将它发送给我刚插入私人消息的所有用户 如果它甚至可能......通过命令

我希望我能够理解

那是我的代码:

    class Bot extends TelegramLongPollingBot {

public int counter = 0;
public ArrayList names = new ArrayList(50);
public SendMessage mainMessage = new SendMessage();
public String sgMsg = "";
public StringBuilder stringBuilder = new StringBuilder();

public String msg;
public void onUpdateReceived(Update update) {

    String command = update.getMessage().getText();
    SendMessage sysMsg = new SendMessage();
    sysMsg.setChatId(update.getMessage().getChatId());



    String firstCdletter;
    firstCdletter = Character.toString(command.charAt(0));


    if (command.equals("/start")) {
        sysMsg.setText("Enter the user's id, to finish send: Ok");
        try {
            execute(sysMsg);
        } catch (TelegramApiException e) {
            e.printStackTrace();
        }
        counter = 0;
        names.clear();
        sgMsg = "";
    }else if (firstCdletter.equals("@")) {

        String user = command;
        names.add(counter);
        counter++;

    }else if(command.equals("/ok")){
        sysMsg.setText("Good, now write your message you want to deliver");
        try {
            execute(sysMsg);
        } catch (TelegramApiException e) {
            e.printStackTrace();
        }


    }else if(command.equals("/done")){
        msg = stringBuilder.toString();
    }else{
        sgMsg = update.getMessage().getText();
        stringBuilder.append(sgMsg + " ");
    }

}

谢谢大家的时间和帮助

1 个答案:

答案 0 :(得分:2)

很遗憾,您无法通过@username发送消息,您可以使用的唯一标识是UID(看起来像109780439)。

顺便说一句,机器人之前必须与该用户聊天,否则你将获得400 Error