内联机器人能看到什么、不能看到什么
在任意聊天框输入机器人用户名加关键词,结果就会出现在键盘上方,选中即可发送——你已经在使用一个不在该聊天中的机器人。本文讲清内联机器人实际收到什么、看不到什么,以及何时该用内联、何时该把机器人加进群组。
在任意聊天框输入机器人用户名加关键词,结果就会出现在键盘上方,选中即可发送——你已经在使用一个不在该聊天中的机器人。本文讲清内联机器人实际收到什么、看不到什么,以及何时该用内联、何时该把机器人加进群组。

在任意消息输入框里输入某个机器人的用户名,后面跟一个词,结果就会出现在键盘上方。选中一个,它就被发送出去。你已经在某个机器人并未加入、无法看见、也从未被邀请的对话中使用过它了。
大多数人做过这件事,却不知道它有个名字——内置的动画和图片搜索正是这样工作的。让它值得单独用一步来讲的特性,在于这个机器人不是什么:不是成员,不是管理员,也无法看到你把它返回的结果发送进去的那个聊天里的任何一个字。
完成这一步后你将能够
- 在别人的群组里使用机器人,而无需加入任何东西。
- 准确说出你这样做时,机器人的运营者会获知什么。
- 在添加机器人和调用机器人之间做出选择。
- 判断什么时候内联这种形态是不该采用的。
当你输入那个用户名时,实际发生了什么
你输入用户名和一段查询。Telegram 会把那段文本发给机器人——不是整个对话,只是用户名之后的那段文本,再加上你是谁、你在什么类型的聊天里。机器人回以一个它可以发送的内容列表。你选中一个,它就会作为你发出的一条消息发送出去,并带有标记,显示它经由哪个机器人而来。
从这个过程中有三点值得提取出来。
机器人会收到你的查询,而你的身份也随之而来。这是大多数人从未考虑过的部分。向内联机器人输入搜索内容,并不像输入到你自己的笔记里;它会连同你的账号一起发送到一个陌生人的服务器。用来找一张表情图完全没问题。但不要在这里输入任何你不会直接发给那个运营者的内容,因为你实际上正是在这么做。
机器人看不到其他任何东西。看不到你周围的那些消息,看不到聊天名称,看不到其他成员,也看不到之前或之后发生了什么。它只是在孤立地回应一次查询,这正是这种形态在你并不拥有的房间里使用起来很安全的原因。
结果就是你的消息。它带有归属标记——接收者可以看到它由哪个机器人生成,并点击查看——但它以你的名义留在对话中,你要为选择发送的内容负责。
添加机器人,还是从消息框调用它
同样的能力通常两种方式都能提供。问题在于,当没有人向它请求任何东西时,这个机器人是否需要在场。
内联调用它
把它添加到房间
内联在各方面都是更轻量的安排:没有东西加入,没有权限被授予,机器人什么也看不到。只有当机器人必须在没有人跟它说话时也在场,才添加它——这是一个真实的需求,而符合的情况比人们以为的要少得多。
在并非你拥有的房间里使用它
你不需要许可,这既是它的特性,也是礼仪问题。群组里的任何人都能把任意内联机器人的结果拉进来,一段严肃讨论就是这样凭空多出一个没人要的动画的。
从管理员的角度看,这是可控的:管辖发送图片、动画及类似内容的权限,同样管辖内联机器人能往你的房间里放什么,所以一个已经限制媒体的群组其实已经限制了这一点。第 058 步的成员权限就是控制手段,值得在第一次为此争论之前就知道它存在,而不是之后。
从成员的角度看,礼仪很普通。在一个工作性质的房间里,内联结果和任何其他消息一样,适用同样的判断:它增添了内容,还是只是一种条件反射。花两秒钟就能发出,并不是发送它的理由。
什么时候内联才是该采用的形态
如果你是在做东西而不是用东西,判断标准很短。
内联适合那种答案就是一件可发送之物的机器人。一张图片、一句引文、一个格式化区块、一张链接卡片、一条目录条目。用户正在撰写一条消息,而你的机器人提供其中一部分。界面的一切都基于这个假设:一次查询、一个列表、一次选择,完成。
当答案是对话时,它就是错误的形态。任何需要追问、确认、表单、支付或任何在多次使用之间保持的状态的东西,都属于与机器人的私聊,因为内联界面没有地方放第二步。硬要这么做的机器人最终会发送一个内容只有“在私聊中打开我”的结果,那不过是聊天机器人的一个更糟糕版本。
它也不适合任何个人化的内容。因为答案默认会被缓存和共享,也因为界面是一个出现在别人键盘上方的列表,所以它不是放账户余额、私人记录或任何旁边的人不该看到的内容的地方。
确实存在一种很好的模式来衔接两者:提供一种方式,把用户从结果列表带入与机器人的私聊,并携带一个参数,这就是第 083 步的带标签链接从另一扇门进来。需要钱包、登录或设置的机器人,正是靠这种方式把用户带到那些事情可以安全发生的地方。
现在就试试——五分钟
四个步骤,其中第二步从来没有人试过。
- 打开与自己的聊天,使用一个内联机器人 输入一个用户名,然后跟一个词。发送一个结果。收藏的消息是适合做实验的地方,原因见第 046 步。
- 查看已发送的消息,找到归属标记 它会说明是哪个机器人生成的,而且可以点击。大多数人从未注意到那一行。
- 在群组里试一次,看看其他成员看不到什么 没有加入消息,没有新成员,没有管理员记录。这个机器人从未在那里出现过。
- 检查你自己群组的媒体权限 那正是决定成员能带入哪些内联结果的同一项设置。现在你知道控制开关在哪里了。
它的安全形态
总体而言,内联机器人是在这个平台上使用别人软件最安全的方式,值得精确说明原因。
没有任何权限被授予。把机器人添加到房间是一个权限决定,其后果会超出你关注的时长,正如第 086 步所述。内联调用它不授予任何权限,不保留任何东西,并在结果发送后结束。
暴露面是有界且可见的。运营者获知的就是你输入的内容和是谁输入的——仅此而已,而且你在输入的那一刻就知道这一点。相比之下,迷你应用是在客户端内运行一个页面,而群组里的机器人则由配置决定答案。
残余风险都是普通的那种。结果可能携带一个链接,而内联结果里的链接就是普通链接,这意味着第 081 步的习惯依然适用:在点击任何不只是阅读的东西之前,先长按。而且一个看起来很像的机器人用户名并不等于经过验证的身份——一个与知名用户名相似的名字,被匆忙的人在消息框里输入,正是第 065 步那种冒充手法的可行攻击方式。
这个阶段的常见问题
我输入机器人的用户名时什么都没出现。为什么?
要么那个机器人根本不提供内联结果——它就是一个你在私聊里对话的普通机器人——要么你所在的房间限制了它会发送的内容类型。在收藏的消息里试试同一个用户名:如果那里出现结果而群组里没有,那么答案就是群组的权限设置,这是该问管理员的问题,而不是故障。
机器人能看到我把结果发送进去的那个聊天吗?
不能。它收到的是你的查询、你的账号身份,以及你正在什么类型的聊天里撰写的一般性指示——私聊、群组还是频道——而对内容一无所知。它不会得知群组名称、成员,或其中任何一条消息。正是这个特性让内联机器人可以在你无法控制的房间里使用,值得精确了解而不是大概了解。
聊天里的其他人知道有机器人参与吗?
知道。消息带有一行文字,指明它经由哪个机器人而来,任何人都可以点击查看那个机器人是什么。你无法匿名发送内联结果,这是正确的设计——结果是以你的名义到达的第三方内容,读到它的人有权知道它来自哪里。
我能阻止成员在我的群组里使用内联机器人吗?
可以间接做到,通过管辖成员可发送内容的那些内容权限。如果普通成员的动画和图片被限制,那么这些类型的内联结果也随之被限制。并没有一个单独标着这项功能的开关,也不需要:群组真正要问的问题是“这里可以发布什么类型的内容”,第 058 步回答了这个问题,而内容来自哪里并不是有用的维度。
为什么我有时会得到旧的结果?
因为对同一查询的答案可以被保留并复用一段时间,这是有意为之,也正是让热门机器人感觉瞬间响应的原因。对搜索机器人来说这不可见;对任何答案每分钟都在变的东西来说,这是构建者必须决定的设计问题,而一个返回昨天数据的机器人,通常其作者从未考虑过这一点。作为用户,如果结果看起来过时,稍微改动一下查询是可靠的变通办法。
内联机器人能在频道里使用吗?
当你以频道身份撰写并拥有发布权时,可以——同样的用户名加查询方式有效,发布出来的帖子也带有同样的归属行。你是否想要这样,是一个编辑层面的问题:在官方公告下面出现一行指明第三方机器人的文字,会改变帖子的观感。对于频道的常规输出,自己发送内容通常是更好的选择,内联留给偶尔真正来自别处的东西。