【发布时间】:2018-02-11 09:48:55
【问题描述】:
我正在开发一个 Telegram 机器人,它应该只能由其所有者访问(只有所有者才能将其添加到组或在搜索中看到它)。是否可以通过 Telegram 服务(如 BotFather)来实现这一点,或者如果向机器人发送消息的人是所有者,我应该检查我的代码吗?
【问题讨论】:
标签: telegram telegram-bot
我正在开发一个 Telegram 机器人,它应该只能由其所有者访问(只有所有者才能将其添加到组或在搜索中看到它)。是否可以通过 Telegram 服务(如 BotFather)来实现这一点,或者如果向机器人发送消息的人是所有者,我应该检查我的代码吗?
【问题讨论】:
标签: telegram telegram-bot
你可以在设置中这样做,你需要自己检查,如果.message.from.id不等于你的就退出程序。
您可以通过/setjoingroup禁用加入群组,但您也不能邀请机器人加入群组。
【讨论】:
BotFather 无能为力。 唯一的方法是在你的代码中检查它。
【讨论】:
您可以在代码中查看聊天 ID(9 位数字)。
例如,如果您使用this 包装器创建机器人,则可以使用update.message.chat_id 获取聊天ID。您还可以检查名字 (update.message.from_user.first_name) 和姓氏 (update.message.from_user.last_name)。
【讨论】:
几周前我开始研究 Telegram 的机器人。为此,我在规范中阅读了无法从 botfather 创建私人机器人。唯一的方法是使用 /password 之类的自定义命令向机器人发送密码,然后保留客户端的聊天 ID(当然,当密码正确时......)。您的机器人只需要接受来自记忆/经过验证的聊天 ID 的命令,就像您以经典方式对任何其他应用程序一样。
【讨论】:
电报文档中描述了另一个选项。
您可以使用deeplink 从链接中获取唯一密钥并保护您的机器人。 拒绝任何没有密钥的人访问您的代码。
来自文档:
$memcache_key = "vCH1vGWJxfSeofSAs0K5PA"
$memcache_key 放入 Memcache 3600 秒(一小时)telegram_chat_id。从 Memcache 中删除密钥。telegram_chat_id。如果是,请使用 Bot API 中的 sendMessage 方法在 Telegram 中向他们发送消息。【讨论】:
await。 Webpack 支持它。 const go = await import(/*...*/); 在你的路由模块的顶层。