本项目是专门为Slack聊天机器人定制的模板服务器。 完整的源代码下载在Github :https://github.com/PerfectServers/SlackBot 在本项目模板中,一个聊天机器人可以加入授权频道,读取频道内所有用户发送的“曲奇”并记录在案,而且可以直接答复用户的有关曲奇饼干的问题。
预备知识
在您决定编译、测试或者部署您自己的基于Perfect软件框架体系的聊天机器人之前,以下基础知识不可或缺:
快速上手
第一步:复制本项目
请使用下列命令复制本项目:
$ git clone https:
本工程根目录之下有一个 config.json.sample 文件,所有内容都是必须填写的配置项:
{ "token": "xoxb-您的Slack应用程序通行证-TOKEN**********XX", "bot" : "聊天机器人名称", "bot_id": "聊天机器人编号", "client_id": "****XX.YYYYYYYYYY您的应用程序编号", "client_secret": "应用程序密码", "verify_token": "反向验证通行证,即Slack在访问您的服务器是验证一下究竟是不是Slack发来的请求", "oauth_uri": "/v1/oauth接口函数地址", "message_uri": "/v1/msg接口函数地址", "confirm_uri": "/v1/confirm接口函数地址", "serverName": "yourhost.yourcompany.domain您的服务器完整域名", "cerPath": "/opt/certificates/yourcertificate.crt您的自签证书和第三方认证证书的合并文件", "keyPath": "/opt/certificates/yourcertificate.key您的证书私有钥匙文件", "dbPath": "/var/opt/yoursqlite.db数据库文件", "runAs": "yourUserName您的服务器普通用户名", "port": 443, "channels": { "channel1_id": "channel1_name需要禁用词语的频道", "channel2_id": "channel2_name需要禁用词语的频道"
}
}
上述文件的所有详细编写说明请参考本文后续内容。
第二步:到您的Slack团队上自行注册一个应用程序
如果所有工作完成,请将上述配置信息逐一输入到您的config.json文件,其中 token指的是 Bot User OAuth Access Token(聊天机器人授权访问通行证)
第三步:获取聊天机器人编号(概念有难度,操作须谨慎)
Slack 聊天机器人需要在编程时使用自己的编号(不是屏幕上显示的名称)。要获得该编号需要一定技巧,请仔细阅读以下说明:
第四步:选择待监控频道(概念有难度,操作须谨慎)
该操作时可选项,但是出于安全角度来说,还是推荐完成的。
虽然相信许多聊天机器人开发商都希望其机器人产品能够加入的频道或者私聊群越多越好,但是您可能希望将聊天机器人县治在某几个特定的频道或者群聊中。
为了实现这个目标,请采用下列操作:
注意 如果您希望您的聊天机器人能够访问所有频道,则直接将下列代码粘贴到您的源程序内即可:
Curl("https://slack.com/api/channels.list?token=\(token)") { ret in
do {
guard let b = ret, let info = try b.jsonDecode() as? [String:Any], let ok = info["ok"] as? Bool, let channels = info["channels"] as? [Any] else {
Print("channel parse::ok(fault)") return nil
}
guard ok, channels.count
|