机器人介绍
机器人是运行在Potato上的第三方应用程序。 用户可以通过向机器人发送消息、命令或者内联请求来与它们进行交互。
机器人开发者可以通过HTTPS请求调用机器人API开发出各种不同功能的机器人。
1. 可以用机器人做什么?
机器人常用于下面的用途
- 自动发布消息通知,比如新闻机器人,收到最新的新闻,可以第一时间推送给订阅该机器人的用户。还比如监控告警机器人,可以监控服务器运行状态,发现异常,可以立即发消息通知服务管理人员。
- 可以与外部服务集成来丰富Potato聊天,比如和gif图片服务器集成,可以让gif机器人搜索各种动图,让Potato聊天更有趣方便。
BotGif , BotMusic, BotVote
- 自定义工具类服务。 比如天气预报机器人,翻译机器人,航班时刻表查询机器人,图片机器人
BotPic
- 由于Potato自由开放,机器人几乎可以做很多有意思的事情。
2. 机器人如何工作?
- 从本质上讲,机器人是Potato上的特殊帐户,不需要额外的电话号码即可创建。 用户可以通过两种方式与机器人进行交互
- 通过直接与机器人聊天或将其添加到群组中来向机器人发送消息和命令。比如和@BotMusic机器人聊天,直接发送歌曲名称即可搜索到你该歌曲信息。
- 内联的方式进行交互,直接在输入框输入 @username
搜索的关键词,则可以让该机器人查询您需要要找的内容,并展示在聊天窗口,用户可以选择查询到的内容发送给任何聊天对象,群组或频道,比如 @pic
跑车,即可得到很多张跑车的图片。
- 用户发送的消息,命令和请求将传递到Potato服务器,
Potato服务器将消息转发给用户自己的机器人服务,从而建立了Potato服务与机器人加密交互的通道,机器人和Potato服务器需要通过机器人API进行。
- 机器人开发详情请参考 Bot API
3. 怎么创建机器人?
在Potato客户端中搜索@BotFather,然后完成下面的步骤:
- 打开BotFather聊天框,输入 /newbot 命令。
- 输入机器人的昵称。
- 输入机器人唯一的用户名。
- 收到创建成功消息及token时表示创建完成
4. 机器人和普通用户的区别?
- 机器人没有在线状态,也没有最后一次看到的时间戳, 只有一个
bot标签,可以很明显的区分普通用户和机器人。
- 机器人的消息缓存时间有限 — 发送给机器人的消息已经处理或者在规定时间内未被处理,则消息会从缓存中被清除。
- 为了安全,机器人不能主动给用户发消息。用户必须向机器人先发消息,类似订阅取得信任,之后机器人才能给用户发消息。
- 机器人用户名以bot结尾,官方机器人除外。
- 当把机器人加入群中,机器人必须将隐私模式设置为false,才能收到群里的消息。
- 机器人不用吃饭,不用睡觉,一天24小时运行。
5. 在哪里可以找到机器人?
6. 机器人特色
Potato机器人有许多独一无二的功能,比如可以在聊天中创建两种类型的按钮,内联按钮,键盘按钮,支持常见的markdown语法,使文字排版更美观,支持内联模式。
内联模式
- 用户可以直接从任何聊天框中的文本输入字段通过内联查询与您的机器人进行交互。 他们所需要做的就是用您的机器人的用户名开始一条消息,然后键入查询.
- 收到查询后,您的内联机器人可以返回查询结果。 用户点击选择其中的结果,它就会发送到用户当前打开的聊天中。
这样,人们可以在任何聊天,群组或频道中发送查询出的内容。
键盘
- 当然,可以教传统的聊天机器人理解人类语言。 但是有时您希望用户提供一些更方便的输入-这是自定义键盘变得非常有用的地方。
- 每当您的机器人发送一条消息时,它都可以通过带有预定义回复选项的特殊键盘传递(请参阅ReplyKeyboardMarkup)。
收到消息的Potato客户端将向用户显示键盘。 轻触任意一个按钮将立即发送相应的命令。 这样,您可以大大简化与机器人的交互。
- 目前,键盘支持文本和表情符号。 以下是一些自定义键盘示例:
- 关于发送键盘按钮请参考Bot API
sendTextMessage接口。
内联按钮
- 在某些情况下,您希望在不向聊天室发送任何消息的情况下进行操作。 例如,当您的用户更改设置或浏览搜索结果时。
在这种情况下,您可以使用直接集成到它们所属消息中的嵌入式键盘。
- 与自定义回复键盘不同,按嵌入式键盘上的按钮不会导致消息发送到聊天室。
相反,嵌入式键盘支持在幕后起作用的按钮:回调按钮,URL按钮和切换为嵌入式按钮。
- 使用回调按钮时,机器人可以更新现有的消息(或仅更新其键盘),来保持聊天整洁。
查看这些示例机器人,以查看内置键盘的运行情况:@music,@vote
命令
- 命令提供了一种与机器人通信的更加灵活的方式。 可以使用以下语法:
- /command [可选] [参数]
- 命令必须以“ /”符号开头,并且不得超过32个字符。 命令可以使用拉丁字母,数字和下划线。 这里有一些例子:
/get_messages_stats
/set_timer 10min Alarm!
/get_timezone London, UK
- 在与机器人进行的所有聊天中的输入字段中显示一个额外的(/)按钮。 轻击它会键入“ /”并显示命令列表。
- 高亮显示消息中的/命令。 当用户点击突出显示的命令时,该命令将立即发送
- 如果组中有多个机器人,则可以将机器人用户名添加到命令中,以避免混淆:
- /start @TriviaBot
- /start @ApocalypseBot
- 通过建议列表选择命令时,将自动完成此操作。 请记住,您的机器人必须能够处理其用户名后面的命令。
设置命令
- 为了使用户更容易的使用机器人,我们建议所有开发人员支持一些基本命令。
- /start--例如,通过发送问候消息开始与用户进行互动。 此命令还可用于将其他参数传递给机器人。
- /help-返回帮助消息。 它可以是有关您的机器人可以做什么的简短文本以及命令列表。
- 用户首次打开与机器人的对话时,将看到一个开始按钮。
机器人的个人资料页面上的菜单中将提供帮助和设置链接。
隐私模式
- 机器人通常会被添加到群组中,来对群组进行自动管理,或者发送通知。根据不同的需求,需要对机器人的隐私模式进行不同的设置:
- 默认情况下机器人的隐私模式是开启的,这样机器人在群中将不会收到用户发送的消息,也无需去处理大量无关的消息,节约服务器资源.
- 如果机器人的业务需要收到群里的消息,则必须禁用隐私模式
- 开启或禁用隐私模式在 @BotFather 中进行设置
7. BotFather
跳转到顶部了解更多有关Potato机器人信息 »
@BotFather可以帮您创建Potato个人机器人并管理您的机器人。
创建一个新机器人
- 使用
/newbot
指令开始创建您的机器人,您只需要填写机器人昵称和机器人名设置即可完成个人机器人创建,@BotFather会为生成一个token为您的新机器人的授权;
- 机器人昵称将用于生成机器人名片;
- 机器人名将用户发现您的机器人,机器人名必须使用a-z, 0-9和_, 最小长度为5个字符, 最大长度为24个字符,
不能以数字开头并且以bot结尾(不区分大小写);
- 生成的token(如"110201543:AAHdqTcvCH1vGWJxfSeofSAs0K5PALDsaw")是授权给机器人并将请求发送到Potato
Bot API服务所必需的;
生成新token
- 如果您发现你的token被盗用或想更新,您可以使用
/token
指令生成一个新的token。
Botfather指令
- /mybots - 返回带有方便控件的机器人列表包含机器人token、编辑、设置、删除等功能。
编辑您的机器人
- /setname - 编辑机器人名
- /setdescription -
编辑机器人简介,一个简短的文本(最多512个字符),描述您的机器人,它将显示在'该机器人能做什么?'中;
- /setabouttext - 编辑机器人关于,一个更简短的文本(最多120个字符), 此信息将显示在机器人的个人资料页面上, 当您与他人分享时,
此信息也将会一起发送;
- /setuserpic - 编辑机器人头像,为机器人设置一个合理头像;
- /setcommands -
编辑机器人指令,当用户在与您机器人聊天框中输入/时,用户将看到这些指令和指令描述列表。建议指令使用字母数字加下划线,不超过32个字符,不区分大小写,和指令文本描述;
- /deletebot - 删除机器人
8. 内联模式
- 除了便捷的指令模式,Potato还可以使用内联模式与您的机器人进行交互。如果您开启该功能用户可以在任何聊天对话框中@机器人名来调用您的机器人,开发者将收到内联消息推送以作出相应功能反馈。
- 首先您需要在@BotFather中使用/setinline开启该功能内联模式并设置一句查询提示,这样用户@机器人名时将告诉他们从您的机器人里的查询内容(e.g.,
Search GIFs),或使用/empty关闭该功能。
- 详情参见Bot API
Manual。
内联查询结果
- Potato目前支持5种内联查询结果显示,如:文章、网页、图片、视频、GIF。
- 客户端可以根据内容的类型使用垂直或水平滚动显示结果:
-
- 用户点击查询结果即可发送并清除当次查询内容.
切换内联/PM模式
- 一些嵌入式机器人可以从中受益,例如将它们连接到外部服务(例如YouTube)上的帐户。我们提供了一种简单的方法,可以在与机器人进行的私人聊天以及用户希望共享内联结果的任何聊天之间进行切换。
- 您可以在内联结果上方显示一个特殊的“切换到PM”按钮。该按钮将打开与机器人的私人聊天,并传递您选择的参数,以便您可以提示用户进行相关的设置操作。完成后,您可以使用带有switch_inline_query自定义键盘将用户返回到原始聊天界面。
传播
- 使用内联发送的消息标题中将携带你的机器人信息.
- 当用户点击消息标题中的bot用户名时,查询内容将自动插入到输入框中。
内联模式示例
- 您可以使用以下包含内联功能的官方机器人:
@gif – GIF search
@music – MUSIC search
@app – APP search
@vote – Search polls
9. ADBot
注意:
- 必须先将ADBot添加到须管理的群组内;
- ADBot只支持超级群管理;
- ADBot必须设置成超级群管理员并赋予相应权限;
如何添加屏蔽关键词
- 使用
/manage
指令查看您是管理员身份群组,然后选择要由ADBot管理的群。
- 例:
- 点击"添加"按钮或使用
/add
指令给管理群组添加屏蔽关键字。
- 例:
注意:
- 关键词长度限制为64位,一条消息视为一个关键词;
- 一个群最多添加100个不重复关键词;
- 使用/done指令提交或结束当前操作;
被管理的群内消息如果包含屏蔽关键字信息将会被删除。如您想屏蔽网址,您可以添加".com"或"www"等关键字。
- 例:
.
将ADBot设置成管理员并赋予相应权限
- As follows:
Delete keywords
- 例:
是否开启踢人功能
- 踢出群内广告用户功能默认关闭,请通过使用
/manage
指令中的"踢人"按钮(推荐)或/kick
指令来检查或设置该功能。
- 例:
新用户进群验证功能
- 新用户进群需验证码功能默认关闭,
请通过使用
/manage
指令中的"验证码"按钮(推荐)或/captch
指令来检查或设置该功能。
- 例: