java telegram bot выгрузка документа

284
25 апреля 2018, 07:48

Каким образом можно реализовать выгрузку документа(любого бинарного) ботом на java? Например, по команде бот формирует xlsx и должен выгрузить его пользователю. Странно, но нагуглить вопрос не получилось.

Answer 1

Насколько я понимаю, вам нужно отправить документ пользователю?

Вот документация: https://core.telegram.org/bots/api#sending-files

Видим, что документ можно отправить по URL или в мультипарте. Вы хотите сами его формировать, так что по URL нам не подходит.

Значит нам нужно по нужному эндпоинту отправить запрос, с телом в мультипарте.

// Формируем url
String url = "https://api.telegram.org/bot" + TELEGRAM_TOKEN + "/sendDocument"; 
// OkHttp клиент
OkHttpClient client = new OkHttpClient();
// Нужный файл
File sourceFile = new File("files/doc.xlsx");
// Непосредственно тело запроса
// Не забудьте, что требуются ещё и другие параметры
RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("document", sourceFile.getName(), RequestBody.create(MediaType.parse("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"), sourceFile))
                .build();
Request request = new Request.Builder()
            .url(url)
            .post(requestBody)
            .build();
Response response = client.newCall(request).execute();
String responseString = response.body().string();

В примере используется OkHttp.

READ ALSO
Что такое Domain Layer?

Что такое Domain Layer?

Я новичок и только познаю JavaВ задании сказано применить логику Domain Layer? но что это и как применять не пойму и не могу найти в интернете понятного...

211
работа jar файла 24/7

работа jar файла 24/7

Вопрос возможно довольно странный, но все жеСуть такая

152
Включить (активировать) компас на карте Yandex MapKit Android

Включить (активировать) компас на карте Yandex MapKit Android

подскажите, как включить (активировать) стандартный компас от Яндекса, как в приложении Yandex Maps для Android, на карте Yandex MapKit Android 30

136
Вопрос по отладке ошибок

Вопрос по отладке ошибок

Есть ли способ отлавливания ошибок в Android-приложении, когда телефон не находится в отладке и во время тестирования приложения произошла ошибкаЧтобы...

148