【问题标题】:Telegram Bot Event When Users Join To Channel用户加入频道时的 Telegram Bot 事件
【发布时间】:2016-11-14 10:24:53
【问题描述】:

创建电报机器人后,访问并管理此机器人到频道。用户加入该频道时如何获取频道成员列表或事件?

【问题讨论】:

    标签: bots telegram


    【解决方案1】:

    对当前的答案非常失望,所以我会留下一个更新的(截至 2018 年 2 月)答案,解释如何使用 Telegram API 本身以及我正在使用的框架 Telegraf for Node 执行此操作.

    就 API 而言,Telegram API 既非常强大,又非常简单。如果您使用的是获取更新的轮询方法,而不是 websockets 是另一个问题,那么检查新人是否已添加到组或频道非常容易。

    API 方法getUpdates 返回一个Update 对象数组,其中包含您可能想要的所有可能信息,包括发送的任何消息、内联查询和新聊天成员。要获得任何新的聊天成员,您只需访问update.message.new_chat_members,其中将包含一系列新用户。作为参考,您可以查看 API 文档here

    要在浏览器或 curl 中获取更新对象,您只需向https://api.telegram.org/botYOUR-BOT-TOKEN/getUpdates 发送 GET 或 POST 请求。然后只需寻找messages->new_chat_members

    如果您将 Telegraf 机器人框架与 NodeJs 一起使用,您可以将 bot.on 方法与事件 new_chat_members 一起使用。

    例子:

    bot.on('new_chat_members', (ctx) => console.log(ctx.message.new_chat_members))
    

    我知道这是不久前被问到的,但我希望这有助于其他人搜索。

    【讨论】:

    • @watzon 问题是您使用 new_chat_members 仅针对群组和超级群组获取更新,而不针对 频道
    • 有没有办法获取 new_chat_members 的用户名?
    • @t1maccapp 有没有办法获取频道的更新?
    • @ИльяЗеленько 如上所述,您无法将它们用于频道
    【解决方案2】:

    来自docs

    new_chat_members 添加到 groupsupergroup 的新成员以及有关他们的信息(机器人本身可能是这些成员之一)

    所以我认为你不能。

    【讨论】:

      【解决方案3】:

      是的!你可以使用这个:

      https://api.telegram.org/bot[TOKEN]/promoteChatMember?chat_id=@[channelname]&user_id=[user_id]

      如果用户加入响应正常,否则响应不正常。

      【讨论】:

        猜你喜欢
        • 2020-03-31
        • 2017-07-29
        • 2016-02-23
        • 2018-09-21
        • 2018-06-07
        • 2016-04-24
        • 2018-06-11
        • 2016-10-01
        • 1970-01-01
        相关资源
        最近更新 更多