Расскажите мне немного о таких вещах, как Telegram API, таких как: ID чата, ID пользователя - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть бот для Telegram.Это функциональность очень проста.Все, что мне нужно, это бот, который посылает мне все сообщения, которые ему отправляют.

Но чтобы отправлять сообщения именно мне, нужен чат ID.Я понял, но вопрос заключается в следующем: является ли этот идентификатор чата - уникальным и постоянным значением, которое точно принадлежит моей учетной записи Telegram, или нет, а если нет, то, что на самом деле является идентификатором чата и как он работает.

Также я обнаружил, что могу получить идентификатор пользователя отправителя.Могу ли я отправлять сообщения с бота, используя не идентификатор чата, а идентификатор пользователя, который также легко получить?

Кстати, я использую Java SDK .Спасибо.

Я попытался получить идентификатор чата своей учетной записи, добавив в бот функцию: отправить отправителю его идентификатор чата.Код будет показан ниже.Это работает, но я не уверен, что это правильно.

if (!update.getMessage().isCommand()) {
    String senderId;
    User sender = update.getMessage().getFrom();
    String messageText = update.getMessage().getText();
    if(update.getMessage().getFrom().getUserName() != null) {
        senderId = "@" + sender.getUserName();
    } else {
        senderId = sender.getFirstName() + " " + sender.getLastName();
    }
    Long arthurChat = 100000001L;
    sendMessage(arthurChat, "Message: " + messageText + "\n" + "Sender: " + senderId);
}

Ожидание ответа.

1 Ответ

0 голосов
/ 02 мая 2019

Chat.id однозначно идентифицирует чат, а User.id однозначно идентифицирует пользователя.

В приватном чате эти два значения совпадают, так что вы можете получить эту информацию двумя следующими способами, в то время как в групповом чате только первый даст вам фактический идентификатор отправителя, а второй даст вам идентификатор группа

update.getMessage().getFrom().getId();
update.getMessage().getChat().getId();

В фрагменте, о котором вы сообщили, вы используете метод с именем sendMessage(), но он устарел в используемой вами библиотеке Java Rubenlagus. Вместо этого вы должны сделать следующее:

SendMessage replyMessage = new SendMessage()
            .setChatId(arthurChat)
            .setText(whateverTextYouWantToSend);
execute(replyMessage);
...