【问题标题】:Add user to channel automatically when user asks当用户询问时自动将用户添加到频道
【发布时间】:2017-07-15 21:00:46
【问题描述】:

我想做一个非常简单的项目:

一位用户(我们称他为 John)与我的机器人打开 Telegram 聊天,并输入以下内容:

用户约翰:/加入频道 1

我的机器人响应将用户“John”添加到频道“channel1”

这实际上就是我想要的。问题是 Telegram BOT API 没有实现任何将用户添加到组的方法。我尝试使用telegram-cli,但“chat_add_user”似乎只接受将用户添加到聊天而不是群组。

有什么方法可以将用户添加到这样的频道? (无需手动操作)还是我应该忘记这一点?

谢谢!

【问题讨论】:

    标签: telegram


    【解决方案1】:

    机器人能力有限。它只能在聊天对话中发送和接收消息,并收集有关其他聊天参与者的一些信息。它无法开始新的对话或其他客户端功能。

    为了自动化你的任务,你应该使用电报API。 有一些客户端,例如telegram-cli,使用电报 API 并具有高级方法。

    其他客户:

    【讨论】:

    • 这解决了我的问题。我能够使用 telegram-cli 执行 channels.inviteToChannel。
    【解决方案2】:

    您可以使用以下方式邀请其他用户加入您的频道:

    channels.inviteToChannel#199f3a6c channel:InputChannel users:Vector<InputUser> = Updates;
    

    您可以通过 InputUser 的列表(向量)一次邀请多个用户。

    这似乎与 Telegram Desktop 和移动客户端一致,允许您选择多个联系人并将其添加到您的组中。

    InputUser 的形式为:

    inputUser#d8292816 user_id:int access_hash:long = InputUser;
    

    【讨论】:

    • 这解决了我的问题。我执行了 channels.inviteToChannel 并按预期发送了邀请。我最终使用 telegram-cli 来实际拨打电话。
    • 如果问题解决,请关闭问题。
    【解决方案3】:

    简答:否

    Telegram 公开任何方式的 API 或匿名将用户加入任何频道的方式都是非常糟糕的设计。

    如果您只想向某些人群发送文本,则可以使用带有 Hooks 的 Firebase 数据库在发生特定消息时向每个用户发送消息

    【讨论】:

    • 原来这也是真的。我无法弄清楚确切的规则,但你是对的,你不能只添加任何人。否则,您可以编写一个遍历所有数字并邀请所有人的脚本。我可以邀请一些人。我猜是我作为联系人或以前与之交谈过的人或其他人。如果我弄清楚了,会再次在这里回复。看来我必须找到一种方法来生成人们可以用来加入群组的唯一地址。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-08
    • 2022-01-11
    • 1970-01-01
    • 2018-04-26
    • 2018-07-15
    相关资源
    最近更新 更多