将图像作为输入流而不是文件发送到电报

问题描述 投票:0回答:1

我有一个运行良好的 Java 代码,它将本地图像从本地目录发送到 Telegram 用户:

public class TelegramBot extends TelegramLongPollingBot {

    public TelegramBot(...) {
        super(botToken);
        this.botName = botName();
    }

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

    @Override
    public void onUpdateReceived(Update update) {
        var message = update.getMessage();
        var incomingMessage = Objects.isNull(message.getText()) ? "" : message.getText().toLowerCase();
        var user = message.getFrom();
        var userId = user.getId();

        execute(SendPhoto.builder()
                .chatId(userId)
                .photo(new InputFile(new java.io.File("/home/xxx/img/hello.png")))
                .build());
    }
}

马夫:

<dependency>
    <groupId>org.telegram</groupId>
    <artifactId>telegrambots</artifactId>
    <version>${telegrambots.version}</version>
</dependency>

但是我需要将 JAR 文件中的图像作为输入流发送:

InputStream s = this.getClass().getResourceAsStream("/img/hello.png")

这有可能吗?不幸的是,示例、API 文档和 Google 没有帮助。

java telegram telegram-bot telegram-api
1个回答
0
投票

试试这个:

 .photo(new InputFile(this.getClass().getResourceAsStream("/img/hello.png")))
© www.soinside.com 2019 - 2024. All rights reserved.