用户加入频道时的电报机器人事件

时间:2016-07-12 09:07:33

标签: bots telegram

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

4 个答案:

答案 0 :(得分:13)

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

Telegram API非常强大,就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

如果您正在使用带有NodeJ的Telegraf bot框架,则可以使用bot.on方法和事件new_chat_members

示例:

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

我知道这是前一段时间被问过的,但我希望这有助于其他人搜索。

答案 1 :(得分:3)

  1. 用电报创建一个机器人
  2. 允许机器人通过botfather加入群组
  3. 将机器人添加到群组/频道并提升为管理员
  4. 使用此地址:https://api.telegram.org/bot< botapitoken >/getChatMember?chat_id=<@channelusername>&user_id=< user_id >

答案 2 :(得分:0)

来自docs

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

所以我想你不能。

答案 3 :(得分:-1)

是的!您可以使用:

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

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