Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Как отправить в телеграм канал пост с картинкой? (https://javascript.ru/forum/events/85394-kak-otpravit-v-telegram-kanal-post-s-kartinkojj.html)

mik888em 29.07.2023 22:25

Как отправить в телеграм канал пост с картинкой?
 
Пытаюсь отправить пост в мой теллеграм канал через бота (он админ в моём канале).
Использую ноду 18. npm пакет node-telegram-bot-api.
Если отправляю просто текст, то нормально отправляется.
Если прикрепляю картинку, то ничего не отправляет, не могу понять почему.

Код отправки просто текстового поста (норм отправляет):
const TelegramBot = require('node-telegram-bot-api');
let OSHIBKA = '';
const bot = new TelegramBot('653*****скрыл****F_JQ');
const text = 
`???? просто текстовый текст`;
bot.sendMessage('@СКРЫЛ', text, {parse_mode: 'Markdown'})
.catch(err => {
  console.error(err);
  OSHIBKA = err.toString();
});




Код отправки с картинкой (ничего не отправляет):
const TelegramBot = require('node-telegram-bot-api');
const fs = require('fs-extra'); // Используем fs-extra
let OSHIBKA = '';
const bot = new TelegramBot('653*****скрыл****F_JQ');
const text =
`???? просто текстовый текст`;
const photoPath = 'C:\\Users\\Administrator\\Downloads\\скрипт\\kartinka_preview.jpg';
const photo = fs.createReadStream(photoPath);

bot.sendPhoto('@СКРЫЛ', photo, {caption: text, parse_mode: 'Markdown'})
  .catch(err => {
    console.error(err);
    OSHIBKA = err.toString();
  });

mik888em 30.07.2023 09:01

вопрос решил сам. всем спасибо

voraa 30.07.2023 09:06

Мне кажется, что в sendPhoto надо указывать не файл картинки, а ее URL
Типа
bot.sendPhoto('@СКРЫЛ', photoPath, {caption: text, parse_mode: 'Markdown'})

Nexus 30.07.2023 13:56

voraa,
Документация телеграм, говорит, что можно передать id уже загруженного файла, ссылку на файл в сети интернет или сам медиафайл.
Цитата:

Photo to send. Pass a file_id as String to send a photo that exists on the Telegram servers (recommended), pass an HTTP URL as a String for Telegram to get a photo from the Internet, or upload a new photo using multipart/form-data. The photo must be at most 10 MB in size.
© https://core.telegram.org/bots/api#sendphoto

mik888em 01.08.2023 12:38

спасибо вопрос решил.


Часовой пояс GMT +3, время: 14:52.