Здравствуйте! Хочу сделать Telegram бота на NodeJS, который по первому сообщению от пользователя будет принимать его в частный канал. То есть создавать приглашение и моментально его принимать. Создал приватный канал, бота и сделал этого бота админом в приватном канале со всеми правами кроме добавления других админов. На просторах документации, так как кроме неё ничего на эту тему не нашёл, нашёл метод createChatInviteLink для создания ссылки приглашения и approveChatJoinRequest для подтверждения:
https://core.telegram.org/tdlib/docs/classtd_1_1td...
Вот мой код:
const TelegramBot = require('node-telegram-bot-api');
const TOKEN = 'my_token';
const PRIVATE_CHANNEL_ID = 'my_private_channel_id';
const bot = new TelegramBot(TOKEN, { polling: true });
bot.on('message', async (msg) => {
//console.log(msg);
const invitelink = await bot.createChatInviteLink(PRIVATE_CHANNEL_ID, msg.chat, 0, 1, true);
console.log(invitelink);
await bot.approveChatJoinRequest(PRIVATE_CHANNEL_ID, msg.from.id);
console.log("approved");
});
При approveChatJoinRequest выдаёт ошибку. Это её последняя информативная часть, так как в консоль вся ошибка не помещается:
body: {
ok: false,
error_code: 400,
description: 'Bad Request: HIDE_REQUESTER_MISSING'
},
[Symbol(kCapture)]: false,
[Symbol(kHeaders)]: {
server: 'nginx/1.18.0',
date: 'Thu, 01 Jun 2023 19:14:41 GMT',
'content-type': 'application/json',
'content-length': '81',
connection: 'keep-alive',
'strict-transport-security': 'max-age=31536000; includeSubDomains; preload',
'access-control-allow-origin': '*',
'access-control-expose-headers': 'Content-Length,Content-Type,Date,Server,Connection'
},
[Symbol(kHeadersCount)]: 16,
[Symbol(kTrailers)]: null,
[Symbol(kTrailersCount)]: 0,
[Symbol(RequestTimeout)]: undefined
Не знаете, с чем это могло бы быть связано, если у Вас был опыт работы с такими функциями тг? Спасибо