Как отправить картинку Telegram bot java

Как я знаю метод sendPhoto не соответствует этот вопрос.
Я хочу отправить сообщение с одной фотографией и 3 встроенными кнопками с ним.

Это реально? Или я должен отправить два сообщения (фото и кнопки)

Я использую php

Решение

Вы можете использовать это

if($text == ‘/send’)< bot(‘sendPhoto’,[ ‘chat_id’=>$update->message->chat->id, ‘photo’=>new CURLFile(«path.PNG»), ‘caption’=>»HELLO», ‘parse_mode’=>»MarkDown», ‘disable_web_page_preview’=>true, ‘reply_markup’=>json_encode([ ‘inline_keyboard’=>[ [[‘text’=>’button 1′,’callback_data’=>’any’]], [[‘text’=>’button 2′,’callback_data’=>’any’]], [[‘text’=>’button 3′,’callback_data’=>’any’]], ] ]) ]); >

Другие решения

Других решений пока нет …

Источник: web-answers.ru

Пишем Telegram чат бота на Java

Telegram Bot API sendPhoto / Документы | Джава

Я хочу сделать простого бота для Telegram. Не получается с методом — sendPhoto (URL). При использовании онлайн-команды бот должен отправить пользователю картинку. Само изображение динамическое, поэтому я использую URL-адрес sendPhoto.

Ошибки, которые я получаю при запуске команды — / online:

org.telegram.telegrambots.exceptions.TelegramApiRequestException: Error sending photo: [400] Bad Request: chat not found at org.telegram.telegrambots.api.methods.send.SendPhoto.deserializeResponse(SendPhoto.java:153) at org.telegram.telegrambots.bots.DefaultAbsSender.sendPhoto(DefaultAbsSender.java:210) at SimpleBot.sendImageFromUrl(SimpleBot.java:62) at SimpleBot.onUpdateReceived(SimpleBot.java:52) at java.util.ArrayList.forEach(ArrayList.java:1249) at org.telegram.telegrambots.generics.LongPollingBot.onUpdatesReceived(LongPollingBot.java:27) at org.telegram.telegrambots.updatesreceivers.DefaultBotSession$HandlerThread.run(DefaultBotSession.java:301)

Есть мысли как решить эту проблему. Спасибо =)

Источник: question-it.com

Отправить фото с помощью telegram.bot

Но я не знаю, что ожидается в параметре string photo . Должен ли я преобразовать свое изображение в строку base64 или передать путь изображения или. В настоящее время мой код выглядит следующим образом

Но это вызывает исключение

Telegram.Bot.Types.ApiRequestException: [Ошибка]: неверный запрос: файл send должен быть непустым

Mr.Logical 17 нояб. 2015, в 15:10
Поделиться

В репозитории NuGet нет пакета Tele Bot . Какое настоящее название пакета вы используете? Это TeleBotDotNet или telegram.bot ?

rufanov 17 нояб. 2015, в 13:22
Какие у вас проблемы? Вы получаете исключение или что еще?
Il Vic 17 нояб.

Еще по теме:  Битрейд видео для Телеграмм канала

2015, в 13:24
я не недооцениваю поставить атрибут String Photo на эту функцию
Mr.Logical 17 нояб. 2015, в 13:26

Пишем Telegram bot на Java | Spring. Урок 3: Смайлики, отправка файлов.

Предположение: поток должен сбросить свою Position в начало. Используйте ms.Position=0 прежде чем передавать его в SendPhoto . Если это не сработает. Вы отладили и проверили, что MemoryStream содержит данные изображения?

PHeiberg 17 нояб. 2015, в 18:33
Спасибо! Оно работает!
Max 06 дек.

2015, в 02:45
Показать ещё 3 комментария
Поделиться:
telegram-bot

3 ответа

В соответствии с документацией по исходному коду вы должны передать «file_id как String для повторной отправки фотографии, которая уже находится на серверах Telegram, или загрузите новую фотографию с помощью multipart/form-data». Я предполагаю, что комментарий параметра является общим и что эта перегрузка принимает файл file_id существующего файла на сервере.

/// /// Use this method to send photos. On success, the sent Message is returned. /// /// Unique identifier for the target chat /// Photo to send. You can either pass a file_id as String to resend a photo that is already on the Telegram servers, or upload a new photo using multipart/form-data. /// Optional. Photo caption (may also be used when resending photos by file_id).

/// Optional. If the message is a reply, ID of the original message /// Optional. Additional interface options. A JSON-serialized object for a custom reply keyboard, instructions to hide keyboard or to force a reply from the user. /// On success, the sent Message is returned.

public async Task SendPhoto(int chatId, string photo, string caption = «», int replyToMessageId = 0, ReplyMarkup replyMarkup = null)
public async Task SendPhoto(int chatId, FileToSend photo, string caption = «», int replyToMessageId = 0, ReplyMarkup replyMarkup = null)

Еще по теме:  Как получить справки с его через Телеграмм

принимает FileToSend , который содержит имя файла и поток. Используйте эту вторую перегрузку для загрузки новых фотографий.

Отказ от ответственности: я не использовал API, поэтому это чисто выводы из проверки исходного кода.

Источник: overcoder.net

Рейтинг
( Пока оценок нет )
Загрузка ...