内容简介:在上一篇教程按本篇教程后学习后完成后,你的机器人将会接受用户发送过来的加密货币,然后立即转回用户。
在上一篇教程 Python 比特币 教程 之一:创建机器人 中, 我们创建了自动回复消息的机器人,当用户发送消息"Hello,World!"时,机器人会自动回复同一条消息。
第二课: 机器人接受比特币并立即退还用户
按本篇教程后学习后完成后,你的机器人将会接受用户发送过来的加密货币,然后立即转回用户。
完整代码如下:
app.py
from mixin_ws_api import MIXIN_WS_API from mixin_api import MIXIN_API import mixin_config import json import time from io import BytesIO import base64 import gzip try: import thread except ImportError: import _thread as thread def on_message(ws, message): inbuffer = BytesIO(message) f = gzip.GzipFile(mode="rb", fileobj=inbuffer) rdata_injson = f.read() rdata_obj = json.loads(rdata_injson) print("-------json object begin---------") print(rdata_obj) print("-------json object end---------") action = rdata_obj["action"] if rdata_obj["data"] is not None: print("data in message:",rdata_obj["data"]) if rdata_obj["data"] is not None and rdata_obj["data"]["category"] is not None: print(rdata_obj["data"]["category"]) if action == "CREATE_MESSAGE": data = rdata_obj["data"] msgid = data["message_id"] typeindata = data["type"] categoryindata = data["category"] userId = data["user_id"] conversationId = data["conversation_id"] dataindata = data["data"] created_at = data["created_at"] updated_at = data["updated_at"] realData = base64.b64decode(dataindata) MIXIN_WS_API.replayMessage(ws, msgid) print('userId', userId) print("created_at",created_at) if categoryindata == "PLAIN_TEXT": realData = realData.decode('utf-8') print("dataindata",realData) MIXIN_WS_API.sendUserText(ws, conversationId, userId, realData) elif categoryindata == "SYSTEM_ACCOUNT_SNAPSHOT": rdJs = json.loads(realData) if ( float(rdJs["amount"]) > 0 ): mixin_api.transferTo(userId, rdJs["asset_id"], rdJs["amount"], "") if __name__ == "__main__": mixin_api = MIXIN_API(mixin_config) mixin_ws = MIXIN_WS_API(on_message=on_message) mixin_ws.run()
Hello Bitcoin!
在项目目录下,执行 python app.py
cd mixin_labs-python-bot source ./bin/activate (mixin_labs-python-bot) wenewzha:mixin_labs-python-bot wenewzhang$ python app.py ws open -------json object begin--------- {'id': 'fd6ce766-331a-11e9-92a9-20c9d08850cd', 'action': 'LIST_PENDING_MESSAGES'} -------json object end---------
开发者可以通过消息面板,给机器人转比特币,当机器人收到比特币后,马上返还给用户!
事实上,用户可以发送任意的币种给机器人,它都能马上返还!
源代码解释
elif categoryindata == "SYSTEM_ACCOUNT_SNAPSHOT": rdJs = json.loads(realData) if ( float(rdJs["amount"]) > 0 ): mixin_api.transferTo(userId, rdJs["asset_id"], rdJs["amount"], "")
如果机器人收到币,rdJs["amount"] 大于零;如果机器人支付币给用户,接收到的消息是一样的,唯一不同的是,rdJs["amount"]是一个负数.
最后一步,调用SDK的 mixin_api.transferTo 将币返还用户!
高级用法
coming soon!
以上所述就是小编给大家介绍的《Python 比特币教程之二: 机器人收发比特币》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 使用 mutt, msmtp 收发邮件
- ActiveMQ结合Spring收发消息
- Qt Socket Server 收发JSON
- 网络通信中收发数据的正确姿势
- Linux 网络层收发包流程及 Netfilter 框架浅析
- 用SQL查询分析实现类似金蝶K3的收发存明细表
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。