Как получить ссылку на выставленный пост в telegram?

В Node.JS сделал вот что:
Написал на Nodejs 18 (npm пакеты node-telegram-bot-api и fs-extra) отправку поста с картинкой через телеграм-бота в мой публичный телеграм-канал.
Пост ставится отлично!
Причём в коде сделал чтоб после публикации получить ссылку (линк) на выставленный пост. Но ссылку не получаю в переменой url. Где косяк не пойму.

Код:
const TelegramBot = require('node-telegram-bot-api');
const fs = require('fs-extra');

const bot = new TelegramBot('653***ТОКЕНБОТАСКРЫЛ****_JQ');

const text = 'текст поста';

const photo = fs.createReadStream('C:\\Users\\Admin\\Downloads\\kartinka_preview.jpg');

bot.sendPhoto('@ТУТЮЗЕРНЕЙМКАНАЛА', photo, {caption: text, parse_mode: 'Markdown'})
  .then(message => {
    const channelId = 'ТУТЮЗЕРНЕЙМКАНАЛА'; 
    const messageId = message.message_id;
    const url = `https://t.me/${channelId}/${messageId}`;
console.log('URL of the posted message:', url);

  })
  .catch(err => {
    console.error('An error occurred:', err);
  });
  • Вопрос задан
  • 303 просмотра
Решения вопроса 1
Но ссылку не получаю в переменой url
Если вы не получаете вообще в console.log ничего, значит, до этого места произошла ошибка. Из трёх строчек в двух ошибки быть не может (строковая константа и конкатенация строки), следовательно, ошибка в message.message_id. Если бы вы неправильно написали название поля объекта, то получили бы undefined, а не ошибку, а значит дело в том, что в message не объект. Делаете console.log(JSON.stringify(message)) и разбираетесь. А ещё смотрите в лог и видите там сообщение "An error occurred".

Если же под "ссылку не получаю" скрывается какое-нибудь https://t.me/ТУТЮЗЕРНЕЙМКАНАЛА/undefined, то читайте предыдущий параграф и учитесь формулировать вопросы - в программировании важна максимальная точность.

Но есть ещё и третий вариант: код ваш выглядит рабочим, может, вы просто не там смотрите лог или тупо проглядели запись?

Это, если что, азы программирования, а ваш первый вопрос здесь был задан пять лет назад - пора бы уже уметь самостоятельно решать такие проблемы.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы