Shell 获取当前脚本文件路径
以下代码适用于 bash 和 zsh:
Mixin 机器人如何获得用户ID和会话ID
能够获悉用户ID和会话ID的两个交互场景和方法:
消息交互
- 等待用户主动发消息给机器人
当用户在 Mixin Messenger 中 添加机器人为联系人时,会自动的发送一条内容是 “Hi”(“你好”) 的文本消息给机器人。 - 机器人收到来自用户的消息时,可以从 message view 里读到 user_id 和 conversation_id.
代码参考 - 如果需要更多用户信息,可以通过 API GET /user/:id 接口读取。
网页交互
- 网页版中,可以使用 Mixin 的 JavaScript Bridge 读取到当前用户的
conversation_id和user_id - 当用户确认 OAuth 授权后,机器人可以使用用户的 access token 通过 GET /me 接口获得更多信息。
用户/群组可以访问网页 https://mixin.one/context 直接查看自己的会话ID。
Mixin 机器人如何获得自己的用户列表
Mixin 机器人如何获得使用过本机器人的所有用户呢?
并没有直接的API方法获得。需要开发者在用户和机器人交互时获得用户信息,并进行保存和管理。
参考 Mixin 机器人如何获得用户ID和会话ID,获得用户ID和会话ID后,保存到内存、文件或数据库。
Mixin 机器人如何群发消息给用户
准备会话ID
若需要给每个用户逐一发送消息(群发消息),就是发送消息到每个会话ID (Conversation ID)。而这份会话ID列表需要自己提前准备好,参考 Mixin 机器人如何获得用户ID和会话ID,然后自行存储和管理。
Mixin 的会话 ID 形式相同,但生成方法分两种:
1. 用户和用户之间的单人会话,可以通过计算两个用户的 user_id 获得。计算方法参考代码。
2. 多人群组的会话ID是随机生成的。
Python 使用 nacl 生成密钥对
使用的库: PyNaCl
安装依赖: pip install PyNaCl
Install pip3 on Ubuntu
本文章引用自: https://www.educative.io/edpresso/installing-pip3-in-ubuntu ,版权归原作者所有。
pip3 is the official package installer for Python 3. It can be used to install packages from the Python Package Index.
Installation
Step 1 - Update system
It is always a good idea to update before trying to install a new package. Run the command below:
pip 安装 Python 库到指定目录
可以使用 t (target) 选项来指定安装的位置。
举例:
Linux systemd unit 配置文件
基础概念可参考阮一峰写的 Systemd 定时器教程
[Service]区块用来 Service 的配置,只有 Service 类型的 Unit 才有这个区块。它的主要字段如下。
Type:定义启动时的进程行为。它有以下几种值。Type=simple:默认值,执行ExecStart指定的命令,启动主进程Type=forking:以 fork 方式从父进程创建子进程,创建后父进程会立即退出Type=oneshot:一次性进程,Systemd 会等当前服务退出,再继续往下执行Type=dbus:当前服务通过D-Bus启动Type=notify:当前服务启动完毕,会通知Systemd,再继续往下执行Type=idle:若有其他任务执行完毕,当前服务才会运行ExecStart:启动当前服务的命令ExecStartPre:启动当前服务之前执行的命令ExecStartPost:启动当前服务之后执行的命令ExecReload:重启当前服务时执行的命令ExecStop:停止当前服务时执行的命令ExecStopPost:停止当其服务之后执行的命令RestartSec:自动重启当前服务间隔的秒数Restart:定义何种情况 Systemd 会自动重启当前服务,可能的值包括always(总是重启)、on-success、on-failure、on-abnormal、on-abort、on-watchdogTimeoutSec:定义 Systemd 停止当前服务之前等待的秒数Environment:指定环境变量
Unit 配置文件的完整字段清单,请参考官方文档。