【发布时间】:2016-11-14 10:24:53
【问题描述】:
创建电报机器人后,访问并管理此机器人到频道。用户加入该频道时如何获取频道成员列表或事件?
【问题讨论】:
创建电报机器人后,访问并管理此机器人到频道。用户加入该频道时如何获取频道成员列表或事件?
【问题讨论】:
对当前的答案非常失望,所以我会留下一个更新的(截至 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))
我知道这是不久前被问到的,但我希望这有助于其他人搜索。
【讨论】:
【讨论】:
是的!你可以使用这个:
https://api.telegram.org/bot[TOKEN]/promoteChatMember?chat_id=@[channelname]&user_id=[user_id]
如果用户加入响应正常,否则响应不正常。
【讨论】: