主页 > imtoken钱包怎么下载 > Python 比特币教程第 1 部分:创建机器人

Python 比特币教程第 1 部分:创建机器人

imtoken钱包怎么下载 2023-01-19 00:13:41

Mixin Network是一个免费快速的点对点加密数字货币交易系统。 在本章中,您可以按照教程在 Mixin Messenger 中创建一个机器人来接收用户消息,学习如何将比特币转给机器人或让机器人将比特币转给您。

Mixin Network开发资源汇编

课程介绍 创建一个接受消息的机器人A bot that accept bitcoins and immediately refunded the userCreate a bot that accepts messages

通过本教程,您将学习如何使用Python创建一个可以接收消息的机器人APP。

Python 3 安装:

本教程基于Python 3.7.2,因此需要安装Python 3.7.2或以上版本。

在 macOS 上

brew upgrade
brew install python@3

在 Ubuntu 上比特币机器图片,从第三方 APT 源安装。

sudo apt update
sudo apt install software-properties-common
sudo add-apt-repository ppa:deadsnakes/ppa

当出现以下提示时,按“Enter”继续。

Press [ENTER] to continue or Ctrl-c to cancel adding it.

重新更新apt源,然后安装python3.7、python3.7-venv

sudo apt update
sudo apt install python3.7 python3.7-venv
sudo ln -s /usr/bin/python3.7 /usr/bin/python3

检查是否安装成功,需要检查python3和python3-venv,正确提示如下:

$ python3 -V
Python 3.7.2

root@n2:~ python3 -m venv -h
usage: venv [-h] [--system-site-packages] [--symlinks | --copies] [--clear]
            [--upgrade] [--without-pip] [--prompt PROMPT]
            ENV_DIR [ENV_DIR ...]
Creates virtual Python environments in one or more target directories.
positional arguments:
  ENV_DIR               A directory to create the environment in.
optional arguments:
  -h, --help            show this help message and exit
  --system-site-packages

比特币机器图片_比特币分叉影响比特币总量_比特币分叉会影响比特币价格吗

Give the virtual environment access to the system site-packages dir. --symlinks Try to use symlinks rather than copies, when symlinks are not the default for the platform. --copies Try to use copies rather than symlinks, even when symlinks are the default for the platform. --clear Delete the contents of the environment directory if it already exists, before environment creation. --upgrade Upgrade the environment directory to use this version of Python, assuming Python has been upgraded in-place. --without-pip Skips installing or upgrading pip in the virtual environment (pip is bootstrapped by default) --prompt PROMPT Provides an alternative prompt prefix for this environment. Once an environment has been created, you may wish to activate it, e.g. by sourcing an activate script in its bin directory

创建 mixin_labs-python-bot 项目

您首先需要创建项目目录,初始化“虚拟环境”,并安装所需的包。

mkdir mixin_labs-python-bot
cd mixin_labs-python-bot
python3 -m venv ./

python3 -m venv命令完成后,项目目录如下:

wenewzha:mixin_labs-python-bot wenewzhang$ ls
bin        include        lib        pyvenv.cfg

当“虚拟环境”创建成功后,需要通过执行bin目录下对应的activate文件来激活。

wenewzha:mixin_labs-python-bot wenewzhang$ source ./bin/activate
(mixin_labs-python-bot) wenewzha:mixin_labs-python-bot wenewzhang$

激活成功后,可以直接执行python或pip,此时不再需要输入它们的完整路径。

在“虚拟环境”中安装所需的包

创建所需包的列表

要求.txt

比特币分叉影响比特币总量_比特币分叉会影响比特币价格吗_比特币机器图片

cryptography==2.4.2
pycparser==2.19
pycryptodome==3.7.2
PyJWT==1.7.1
python-dateutil==2.7.5
PyYAML==3.13
requests==2.21.0
websocket-client==0.54.0

通过 pip 升级 pip 包本身,并安装所需的包。

pip install --upgrade pip
pip install -r requirements.txt

下载 Mixin Network 的 python 3 API

wget https://github.com/includeleec/mixin-python3-sdk/raw/master/mixin_ws_api.py
wget https://github.com/includeleec/mixin-python3-sdk/raw/master/mixin_api.py
wget https://github.com/includeleec/mixin-python3-sdk/raw/master/mixin_config.py

你好世界! 打造第一个机器人APP

按照教程,去mixin.one创建APP【教程】。

生成对应参数

并记下它们以便在 mixin_config.py 中使用。

在项目目录中,创建 mixin_config.py,并将生成的参数替换为您的参数!

mixin_config.py

client_id= 'ed882a39-0b0c-4413-bbd9-221cdeee56bf'
client_secret = '8d7ec7b9c8261b6c7bd6309210496ca4b72bce9efc7e49be14a428ce49ff7202'
pay_pin = '599509'
pay_session_id = 'bd53b6a4-e79a-49e5-ad04-36da518354f6'
pin_token = "nVREh0/Ys9vzNFCQT2+PKcDN2OYAUSH8CidwHqDQLOCvokE7o6wtvLypjW9iks/RsnBM6N4SPF/P3bBW254YHGuDZXhitDEWOGkXs7v8BxMQxf+9454qTkMSpR9xbjAzgMXnSyHrNVoBtsc/Y+NvemB3VxPfsCOFHasiMqAa5DU="
private_key = """-----BEGIN RSA PRIVATE KEY-----
MIICXQIBAAKBgQCnaoO1SdPxggEpAIUdM/8Ll4FOqlXK7vwURHr4FFi6hnQ1I79g

比特币分叉会影响比特币价格吗_比特币机器图片_比特币分叉影响比特币总量

pZSlJdzjr24WcIuNi6kVdXVIpyzZJGXS2I72dpGs5h1jKxL8AWIUVL2axZXqTJNi c4wj6GJ4gDRP2U9I9gae+S/frM6KP8TioV0OcbmrlfrwI0OElLH3363y1wIDAQAB AoGAduaGLi4F8cMkMculvqzcGY57jrQZBGyg6YANWb2Rmr+9LrR5yhkvLe9rJuXE KPm7k0a6SnxGVNguWPWpv4qAVVGAJ0eb8ETXTRO20HlKmcbxfFdDtHBDV3QufNa1 h3mNEsqWDNCDdAm7p/EZwfG2F9+nmeXLfip7R1I72qbK0wkCQQDiJR6NEGVwbj8H K8kRpzY1D9lPqp1ZMrma5AFYGZIb5voTxLjRpYdxQJHi7CCdE1zgqJOXvA3jj/io f7bMIJY7AkEAvYSSC5H+fUKAjyjeCTGJBBKoPDsq+aALAYLWf77sGXE9BBmhhY0l iwmbj8X6/qZtQ0yEzdT/OSdiYL86CcrgFQJBALz/sMzMSzrvqJVhrqWmTdOC72d5 fA+0KRKeQ9FRbZ8MJyymWKA96zhncoVoOsmMCS9pNBC4BhONm4+XTTrEcUkCQQCo DWB8Bg/G/yuExtZtDJHVHL41+rmW9UYNJvoR+TjfLrzOX/QMuyapbfGVwhdZrDaD UN0KsG9JPRVNeQR8HnwpAkACrr9cNp1H1bytHG9a6L+5cVHkRhqqEYWVO41MhgZF 5bIKx5OXCJB2VwY7fjFet2KxTHGfEZt/khjFNZzVX7lN -----END RSA PRIVATE KEY-----"""

需要替换的参数包括:client_id、client_secret、pay_pin、pin_token、pay_session_id、私钥。

使用以下内容创建 app-mini.py 文件:

应用程序迷你.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"] realData = base64.b64decode(dataindata) MIXIN_WS_API.replayMessage(ws, msgid) if 'error' in rdata_obj:

比特币分叉影响比特币总量_比特币机器图片_比特币分叉会影响比特币价格吗

return if categoryindata == "PLAIN_TEXT": realData = realData.decode('utf-8') print("dataindata",realData) MIXIN_WS_API.sendUserText(ws, conversationId, userId, realData) if __name__ == "__main__": mixin_api = MIXIN_API(mixin_config) mixin_ws = MIXIN_WS_API(on_message=on_message) mixin_ws.run()

运行app-mini.py,记得先激活“虚拟环境”!

(mixin_labs-python-bot) wenewzha:mixin_labs-python-bot wenewzhang$ python app-mini.py
...

如果一切正常,会有如下提示:

(mixin_labs-python-bot) wenewzha:mixin_labs-python-bot wenewzhang$ python app-mini.py
ws open
-------json object begin---------
{'id': '1c798948-30eb-11e9-a20e-20c9d08850cd', 'action': 'LIST_PENDING_MESSAGES'}
-------json object end---------

在手机上安装Mixin Messenger,添加一个机器人为好友比特币机器图片,(比如这个机器人是7000101639)然后给它发消息,效果如下!

源码解释

WebSocket 是一种基于 TCP 的全双工通信方式。 我们需要建立一个循环来保持通信。

if __name__ == "__main__":
    mixin_api = MIXIN_API(mixin_config)
    mixin_ws = MIXIN_WS_API(on_message=on_message)
    mixin_ws.run()

每收到一条消息,需要根据消息编号(message_id)向服务器回复一条“已读”消息,防止机器人重新登录后服务器再次发送处理过的消息!

        MIXIN_WS_API.replayMessage(ws, msgid)