如何通过Kotlogram添加电话号码发送直接电报信息?

时间:2017-12-10 10:12:53

标签: telegram

我目前阅读了有关Kotlogram的所有指南,但我不知道如何向联系人添加一个specefic电话号码以用Java语言发送消息。

任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:1)

此解决方案受尝试错误的影响,并与原始doc一起使用,因此可能会有更好的解决方案。

这包括3个步骤

  1. 将此电话号码添加到您的联系人中:返回user-id
  2. 使用上一步中的user-id创建TLInputPeerUser实例
  3. 使用先前创建的TLInputPeerUser实例发送消息

确定,您可以使用此ID一次又一次向该联系人发送消息

这是一个简单的方法

    private static void sendMessage(TelegramClient client) {

    try {
        Random random = new Random();

        TLVector<TLInputPhoneContact> vector = new TLVector<>();
        TLInputPhoneContact contact = new TLInputPhoneContact(Math.abs(random.nextLong()), "international phone number",
                "firs-name", "last-name");
        vector.add(contact);
        TLImportedContacts importContacts = client.contactsImportContacts(vector, true);

        TLImportedContact importedContact = importContacts.getImported().stream().findFirst().orElse(null);

        TLInputPeerUser inputPeerUser = new TLInputPeerUser();
        inputPeerUser.setUserId(importedContact.getUserId());
        
        //you can save importedContact.getUserId() into db and use it as many as you want

        client.messagesSendMessage(inputPeerUser, "message", Math.abs(new Random().nextLong()));

    } catch (RpcErrorException | IOException e) {
        e.printStackTrace();
    }
}

如果您还有更多疑问,请发表评论(:

答案 1 :(得分:0)

首先,机器人无法在没有/START的情况下向用户发送消息。

您无法通过电话号码与机器人添加联系人,但有一种极客方式,您可以使用sendContact获取.result.contact。 user_id ,然后您可以正常发送。

参见以下示例:

Awesome Telegram Bot