跳至主要内容

机器人:开发者入门

机器人是运行在Potato内部的第三方应用程序。用户可以通过发送消息、命令和内联请求与机器人互动。你通过HTTPS请求控制你的机器人,发送给我们的机器人API

1. 我能用机器人做什么?

举几个例子,你可以用机器人来:

  • 获取定制通知和新闻。机器人可以充当智能报纸,发布后立即向你发送相关内容。

  • 与其他服务整合。机器人可以用外部服务的内容丰富土豆聊天。
    动图BotMusic,BotVote

  • 接受Potato用户的付款。机器人可以提供付费服务,也可以作为虚拟商店使用。

  • 创建自定义工具。机器人可能会为你提供提醒、天气预报、翻译、格式调整或其他服务。
    贴纸机器人

  • 几乎做其他任何事情。除了洗碗——机器人洗碗很糟糕。

2. 机器人是如何工作的?

从本质上讲,土豆机器人是特殊账户,无需额外电话号码即可设置。用户可以通过两种方式与机器人互动:

  • 通过与机器人开启聊天或加入群组,向机器人发送消息和指令。这对聊天机器人或新闻机器人(如官方@BotMusic机器人)非常有用。
  • 通过输入机器人的@username和查询,直接从输入字段发送请求。这允许内联机器人直接向任何聊天、群组或频道发送内容。
    用户发送的消息、命令和请求会传递给运行在你服务器上的软件。我们的中介服务器为您处理所有加密和与土豆API的通信。你通过一个简单的HTTPS接口与该服务器通信,该界面提供了简化版的土豆API。我们称这个接口为我们的机器人API
    有关于机器人API的详细描述
    »

3. 我如何创建机器人?

有个......那个用机器人。只需与BotFather(下面描述)交谈,并按照几个简单步骤操作。创建机器人并收到授权令牌后,请前往机器人API手册,看看你可以教机器人做些什么。
你也可以在这里查看一些代码示例 »

4. 机器人与人类有何不同?

  • 机器人没有在线状态,也没有最后一次出现的时间戳,界面上显示的是“bot”这个标签。
  • 机器人的云存储有限——旧消息处理后不久可能被服务器删除。
  • 机器人无法主动与用户对话。用户必须先将他们添加到群组或发送消息。人们可以通过链接或用户名搜索找到你的机器人。potato.im/<bot_username>
  • 机器人用户名总是以“bot”结尾(例如@GIFBot@Stickerbot)。
  • 加入群组时,机器人默认不会接收所有消息(参见隐私模式)。
  • 机器人从不吃饭、睡觉或抱怨(除非有特别编程)。

5. 我在哪里可以找到机器人?

Potato 中有许多机器人(包括官方 Potato 机器人和第三方机器人),为了方便用户找到每个机器人,Potato 提供了便捷的查找方式。用户可以通过以下方式找到机器人:
打开土豆,底部有导航栏。点击“发现”,你会看到Bots Mall。
然后点击机器人商城,那里会显示官方的土豆机器人,比如@GIFBot、BotMusic和BotGif等。批准后,第三方机器人也可以在机器人商场展示。
如果有审计或有任何问题,请@BotSupport

6. 机器人特性

土豆机器人在许多方面都很独特——我们提供两种键盘,额外的默认命令接口和深度链接,以及文本格式化,以及更多功能。

直联模式

用户可以通过任何聊天中的文本输入栏直接通过内联查询与你的机器人互动。他们只需用你机器人的用户名发消息,然后输入查询即可。
收到查询后,你的机器人可以返回一些结果。用户一点击其中一个,信息就会被发送到当前打开的聊天室。这样,人们可以在他们的聊天、群组或频道中向你的机器人请求内容。

我们还为你的机器人在在线和PM模式之间切换提供了简便功能。
阅读更多关于直联模式的信息 »

键盘

传统的聊天机器人当然可以被教导理解人类语言。但有时你需要用户更正式的反馈——这正是定制键盘非常有用的地方。
每当你的机器人发送消息时,它可以传递一个带有预设回复选项的特殊键盘(参见ReplyKeyboardMarkup)。收到消息的Potato应用会向用户显示你的键盘。轻按任意一个按钮都会立即发送相应的命令。这样你可以大幅简化用户与机器人的互动。
我们目前支持按钮使用文字和表情符号。以下是一些自定义键盘示例:

如需了解更多定制键盘的技术信息,请参阅机器人API手册(参见sendMessage)。

在线键盘与实时更新

有时候你更愿意做事时不发消息到聊天。例如,当用户更改设置或翻阅搜索结果时。在这种情况下,你可以使用直接集成在所属消息中的内联键盘。
与自定义回复键盘不同,按内联键盘的按钮不会发送消息到聊天室。相反,内联键盘支持幕后操作的按钮:回调按钮、URL按钮以及切换到内联按钮。

当使用回拨按钮时,你的机器人可以更新已有的消息(或仅是键盘),以保持聊天内容整洁。看看这些示例机器人,看看内联键盘的实际操作:@music、@gif、@sticker。
阅读更多关于内联键盘和即时编辑的信息 »

指挥

命令提供了一种更灵活的方式与机器人沟通。可以使用以下语法:

命令必须始终以“/”符号开头,且字符不得超过32个字符。命令可以用拉丁字母、数字和下划线。举几个例子:



以斜杠开头的消息总是传递给机器人(同时回复其消息和通过用户名@mention机器人的消息)。土豆应用将:
/command [optional] [argument]/get_messages_stats/set_timer 10min Alarm!/get_timezone London, UK

  • 当用户输入“/”时,建议一份支持命令的列表和描述(要做到这一点,你需要向@GIFBot提供命令列表)。点击列表中的命令会立即发送该命令。
  • 在所有与机器人聊天的输入栏中显示额外的(/)按钮。点击它会输入一个“/”,并显示命令列表。
  • 在消息中高亮 /commands。当用户点击高亮命令时,命令会立即发送。

如果一个组中有多个机器人,可以为避免混淆而在命令中添加机器人用户名:


当通过建议列表选择命令时,这是自动完成的。请记住,你的机器人需要能够处理其用户名后面紧接的命令。
/start@TriviaBot/start@ApocalypseBot

全局命令

为了让用户更容易在机器人多元宇宙中导航,我们请求所有开发者支持一些基本命令。Potato应用会有这些命令的界面快捷方式。

  • /start - 开始与用户交互,例如发送问候消息。该命令也可以用来向机器人传递额外参数。

  • /help - 返回帮助消息。它可以是一段简短的文字,介绍你的机器人能做什么,或者一份命令列表。
    用户在首次与你的机器人对话时会看到一个开始按钮。帮助和设置链接将在机器人个人资料页的菜单中提供。

    格式:加粗、斜体、定宽文本和内联链接

    你可以在机器人消息中使用加粗、斜体或定线文字,以及内联链接。土豆客户会相应地呈现这些信息。
    阅读更多 Bot API 手册 »

隐私模式

机器人经常被添加到群组中,以增强人类用户之间的交流,例如通过提供新闻、外部服务通知或额外的搜索功能。这在与工作相关的群体中尤其如此。现在,当你和机器人共享群组时,你往往会问自己:“我怎么能确定这个小家伙没有把我的聊天记录卖给竞争对手?”答案是——隐私模式。运行在隐私模式
的机器人不会接收到所有用户发送给群组的信息。相反,它只会获得:

  • 以斜杠开头的消息(见上方命令)
  • 回复机器人自己的消息
  • 服务消息(新增或移除群组的人等)
  • 来自其成员
    频道的消息一方面,这让我们中的一些人晚上睡得更好(戴着锡纸睡帽),另一方面——这让机器人开发者节省了大量资源,因为他们每天不必处理成千上万条无关信息。
    隐私模式默认为所有机器人启用,除了那些作为管理员加入群组的机器人(机器人管理员总是接收所有消息)。它可以被禁用,使机器人像普通用户一样接收所有消息。我们只建议在机器人工作绝对必要的情况下这样做——用户总能在组成员列表中看到机器人当前的隐私设置。在大多数情况下,使用强制回复选项来处理机器人的消息应该足够了。

7. 机器人之父

跳转到顶部,了解关于土豆机器人的一切 »
@GIFBot 是唯一统治所有机器人的机器人。它会帮助你创建新的机器人并更改现有机器人的设置。

创建新机器人

使用 /newbot 命令创建新机器人。@GIFBot会要求你输入姓名和用户名,然后为你的新机器人生成授权令牌。
你的机器人名称会显示在联系方式和其他地方。
用户名是一个简短的名称,用于提及和链接。用户名长度为5-32个字符,大小写不分,但只能包含拉丁字母、数字和下划线。你的机器人用户名必须以“bot”结尾,例如“david_bot”或“DavidBot”。
令牌是类似 110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw 的字符串,用于授权机器人并向机器人 API 发送请求。
Potato.im

生成授权令牌

如果你现有的令牌被泄露或丢失了,使用/token命令生成一个新的。

机器人父亲指令

剩下的命令就很直观了:

  • /mybots — 返回你的机器人列表,并附带方便编辑设置的控制

编辑机器人

  • /setname – 更改你的机器人名称。
  • /setdescription — 更改机器人的描述,一份最多512个字符的简短文本,描述你的机器人。用户会在与机器人对话的开头看到这段文字,标题为“这个机器人能做什么?”。
  • /setabouttext ——更改机器人关于信息,更短的文本最多可达120字符。用户将在机器人的个人资料页上看到这段文字。当他们与某人分享你的机器人时,这条短信会与链接一起发送。
  • /setuserpic — 更改机器人的头像。能把脸和名字联系起来总是件好事。
  • /setcommands — 更改你的机器人支持的命令列表。用户在与你的机器人聊天中输入或聊天时,会把这些命令视为建议。每个命令都有名称(必须以斜杠“/”开头,字母数字加下划线,不超过32个字符,大小写不区分)、参数和文本描述。用户在与你的机器人对话中输入“/”时,会看到命令列表。
  • /deletebot — 删除你的机器人并释放其用户名。

8. 内联机器人

  • 除了在私信或群组中发送命令外,用户还可以通过内联查询与你的机器人互动。如果启用了内联查询,用户可以通过在任何聊天中的文本输入栏输入用户名和查询来呼叫你的机器人。查询会通过更新发送给你的机器人。这样,人们可以在他们的聊天、群组或频道中向你的机器人请求内容,而无需发送任何消息。

  • 阿凡达

  • 要启用此选项,发送 /setinline 命令@BotFather,并提供占位文本,用户输入机器人名称后会在输入字段中看到。

  • 相关方法和对象请参见机器人API手册

轮滑成绩

  • 内联机器人支持Potato中所有类型的内容(共6种)。他们能够发送音乐、动图、文章、图片、动图等多种内容。
  • 阿凡达
  • 客户端可以通过垂直或水平滚动显示结果,具体取决于内容类型:
  • 阿凡达 阿凡达
  • 用户一点击物品,物品会立即发送给收件人,输入字段也会被清除。

切换串联/PM模式

  • 一些内联机器人可以通过初始设置过程受益,比如将它们连接到外部服务(例如YouTube)的账户。我们新增了一个简单的方式,可以在与机器人的私聊和用户想分享的在线聊天之间切换。
  • 阿凡达
  • 你可以在内联结果上方(或代替它们)显示一个特殊的“切换到PM”按钮。这个按钮会打开与机器人的私密聊天,并传递你选择的参数,这样你可以提示用户进行相关的设置操作。完成后,你可以用带有switch_inline_query按钮的内联键盘将用户返回原始聊天。

病毒传播

  • 在机器人帮助下发送的消息会显示用户名和发件人姓名。
    阿凡达 阿凡达
  • 当用户在消息头中点击机器人用户名时,该提及会自动插入输入字段。在输入栏输入@符号会弹出一系列建议,介绍最近使用的内联机器人。

内联机器人示例

  • 这里有一些示例的内联机器人,如果你感兴趣想看看它们的实际操作。试试这些:
    @gif – GIF 搜索
    @music – 音乐搜索
    @app – 应用搜索
    @vote – 搜索投票

9. ADBot

注释:

  • ADBot应成为一个组织的成员
  • ADBot只支持超级组
  • ADBot应设置为管理员

如何添加关键词

  • 用命令查看你作为管理员的组,选择你想让 AD Bot 管理的组。/manage
  • 具体如下:
  • 如果你需要 ADBot 管理超级组,应该通过命令中的“添加”按钮(推荐)或用 /add 命令添加被阻断的关键词。/manage
  • 具体如下:
注释:
  • 关键词的最大长度为64个字符,消息被视为关键词。
  • 一个小组最多可以添加100个关键词而不重复。如果你反复添加关键词,ADBot 会自动删除同一个关键词。
  • 使用命令提交或完成当前操作。/done

添加关键词后,ADBot会将发送敏感词的用户踢出群组并对其进行排斥。例如,如果你想踢出所有发送 URL 的用户,可以筛选“.com”和“www”等关键词。

  • 具体如下:

为 ADBot 设置权限

  • 具体如下:

删除关键词

  • 具体如下:

开启开球功能

  • 默认关闭广告主的功能是关闭的,请通过命令或命令中的“踢出”按钮(推荐)来检查是否开启。/manage/kick
  • 具体如下:

开启新用户加入群组的验证功能

  • 验证码功能默认关闭,使用/manage命令中的“验证码”按钮(推荐)检查验证码是否开启或关闭,并切换验证码的语言类型。/captcha
  • 具体如下: