NodeJS 如何获取成员加入节点Telegram bot的聊天邀请链接API #chatmemberupdated

sz81bmfz  于 5个月前  发布在  Node.js
关注(0)|答案(1)|浏览(48)

我正在尝试制作一个电报机器人,我想要聊天邀请链接,通过该链接,成员加入电报中的组。我正在使用NodeJS中的节点电报机器人API,同时使用官方电报机器人API https://core.telegram.org/bots/api#chatmemberupdated中指定的“chatemerUpdated”方法。但我没有得到任何更新,这是代码。

bot.on("chatMemberUpdated", async (update) => {
  try {
    const chatId = await update.chat.id;
    const newMember = await update.message.new_chat_member;

    // Check if a new member joined
    if (newMember) {
      const chatInviteLink = await update.message.chat_invite_link;

      if (chatInviteLink) {
        console.log(
          `New member ${newMember.first_name} joined in chat ${chatId}`
        );
        console.log(`Chat Invite Link: ${chatInviteLink}`);
      } else {
        console.log(`Chat Invite Link not available for chat ${chatId}`);
      }
    }
  } catch (error) {
    console.log(error)
  }
});

字符串
我已经尝试使用'new_chat_members'和'left_chat_member'方法,他们正在返回有关成员加入和离开的数据,但我想要的invite_link,我无法理解使用哪种方法。任何建议都将受到赞赏,如果有任何替代方法,我可以实现上述相同的事情,我也愿意接受这些建议。

x33g5p2x

x33g5p2x1#

我得到了答案后,这是一个愚蠢的错误,在我的结束,“chattererUpdated”是一个方法类型,我们可以通过其中一个成员加入邀请_链接的方式。这里使用的方法是“chat_member”,而{allowed_updates:chat_member}选项可用于电报API官方文档中提到的机器人,The bot must be an administrator in the chat and must explicitly specify "chat_member" in the list of allowed_updates to receive these updates.使用telegram的示例代码(我以为node-telegram-bot-api npm包不支持这种方法)如下所示:-

const { Telegraf } = require('telegraf');
const { message } =  require('telegraf/filters')

const botToken = 'YOUR_TOKEN_GOTTEN_THROUGH_BOTFATHER';

const bot = new Telegraf(botToken);

bot.on('chat_member', (ctx) => {
  console.log(ctx.chatMember.invite_link)
})

// Start the bot
bot.launch({
  allowedUpdates : ['chat_member']
}).then(() => {
  console.log('Bot is running');
});

字符串
invite_link可以在chatMember对象中找到。我用telegram尝试过,但也可以从node-telegram-bot-api获得相同的结果。

相关问题