@hitchhacker
2018-06-13T21:45:35.000000Z
字数 2505
阅读 1219
点击File>Open用 Pycharm 打开mixin_mini文件夹,这里面是一个最小可用版本的用Python写的Mixin机器人。
打开mixin_config.py。这是机器人的配置文件,保存着机器人所需的参数信息。
这些参数分成两个部分,无需修改的和需要修改的。
无需修改的参数如下:
#=====无需修改的信息==========
eth_asset_id="43d61dcd-e413-450d-80b8-101d5e903357"
sc_asset_id="990c4c29-57e9-48f6-9819-7d986ea44985"
prs_asset_id = "3edb734c-6d6f-32ff-ab03-4eb43640c758"
cnb_asset_id = "965e5c6e-434c-3fa9-b780-c50f43cd955c"
#=========end ======-==========
是各种数字货币在Mixin中的uuid。
需要修改的参数是这些:
#=====需要修改的信息=========
mixin_client_id = ""
mixin_client_secret = ""
mixin_pay_pin = ""
mixin_pay_sessionid = ""
mixin_pin_token=""
private_key = ""
#=============================
再次打开这个网址:
按照以下方式把内容填充进去即可:
然后我们就能运行机器人啦!右击mixin_robot.py,点击Run 'mixin_robot'。
如果下面的窗口里出现这样的鬼画符,说明你的机器人运转正常!
然后记下dashboard中的这串机器人的身份id:
在mixin messanger中用上图的id添加联系人:
对它说「hello」,如果它回复「world!」,那说明你的程序完全跑通啦,恭喜你,迈出了重要的一步!
任何编程都是从改改参数开始的,所以,我们来修改一下参数,让这个机器人更「个性化」一点吧!
#=====功能:说hello,回复world========
if realData == "hello":
btn = "world!".encode('utf-8')
params = {"conversation_id": data['conversation_id'], "recipient_id": data['user_id'],
"message_id": str(uuid.uuid4()), "category": "PLAIN_TEXT",
"data": base64.b64encode(btn).decode('utf-8')}
writeMessage(ws, "CREATE_MESSAGE", params)
我们首先修改的是realData。realData 变量表示的是在Mixin Messanger 里用户对机器人说了什么。所以我们可以把realData == "hello" 这个逻辑判断中的"hello"修改成我们想让机器人回应的内容,例如 realData == "早上好"。
然后btn中那个"world"就是我们要让机器人回应什么啦,我们同样可以修改为自己想要的内容。
如果你有一定Python基础,可以尝试将AIML等聊天库接入进来,那么你的机器人就变成聊天机器人啦!
本节主要介绍MiXin中用到的一些网络协议及相关知识。过程中会用到curl(command line URL viewer),Linux/Unix下面的的一个命令行工具,主要功能之一是发起网络请求并接收返回结果。
它支持HTTP、HTTPS、WebSocket等众多协议。
在我们开发的过程中,Curl是API端口调试必不可少的工具。
MIXIN提供的开发接口也非常简单易用,其中主要用到了HTTP(S)协议的GET方法、 POST方法以及WebSocket协议。所以接下来我们重点对MIXIN中用到的协议进行讲解。
HTTP(S): Hypertext Transfer Protocol (Secure), 是(安全)超文本传输协议。HTTP和HTTPS的主要区别是HTTPS传输数据时是加密的,而HTTP不加密。下面我们都以HTTP为例来进行讲解。
HTTP协议定义了客户端与服务器之间的通信内容及交互方式。客户端与服务器之间以请求,响应的方式进行交互,即由客户端向服务器端发出请求消息,服务器收到请求消息后执行客户请求并返回请求数据。
请求的消息包含两部分:请求什么资源, 进行什么操作。
(1)请求什么资源。即具体访问服务器的哪个文件或者程序。这个是通过URL(统一资源定位符,通俗点就是网址)指定的,其格式如下:
http: + // + Web服务器名 + / + 访问文件目录 + / + 文件名(可选)
http: 表示以 http 协议访问Web服务器,// 后面是服务器域名,域名后面是要访问资源在服务器的具体路径,有时候后面会带上文件名,例如「abc.html」,但这个文件名并非总是必要的。
举个例子说明:
http://api.mixin.one/network/snapshots/8f5b244e-cf86-4374-8eaa-c551fd70cd83 这串URL 表示通过http协议,访问 api.mixin.one 服务器上面的路径"network/snapshots/8f5b244e-cf86-4374-8eaa-c551fd70cd83"。
* 进行什么操作,即希望服务器完成什么样的操作。HTTP协议定义了很多方法用来向服务器发出请求。其中最常用的是GET和POST 两种方法。
* GET, 返回URL指定的信息,如果URL指定的是具体文件,则返回该文件内容,如果指定的是某个程序,则返回改程序的执行结果。