由于Slack的日志保存期限变为90天,Slack的日志逐渐不可见,
这是我在导入Mattermost时将自定义表情符号(反应)从Slack复制到Mattermost的笔记。
从Slack提取反应
一开始我打算使用Slack的API来提取,但使用Chrome扩展
Slack Custom Emoji ManagerSlack
下载变得非常简单,因此我使用这个进行下载。
安装Chrome扩展后,访问 https://<自己的Slack>.slack.com/emoji,
只需点击“下载所有表情符号”即可。
导入到Mattermost
使用curl批量通过API注册。
需要注意的是,Slack可以为反应名使用日语,但Mattermost无法注册多字节名称,因此在下载的反应中如果有日语名称,则需提前修正。
创建Bot以使用API并获取访问令牌
- 选择“集成功能”
- 选择“Bot账户”
- 点击“添加Bot账户”
- 创建账户
角色选择“系统管理员” - 令牌会被发放,请记住它
获取Bot的用户ID
在注册表情符号时需要指定机器人的用户ID,因此通过API获取机器人的用户ID。
$ TOKEN="刚刚获得的TOKEN"
$ CREATE_ID=$(curl -s -X GET -H "Authorization: Bearer ${TOKEN}" https://<Mattermost URL>/api/v4/users/me | jq -r .id)
$ echo $CREATE_ID
此时CREATE_ID变量中应该保存着创建的Bot的用户ID。
使用API令牌和BotID批量注册
将之前下载的表情符号放在目录中并执行。
$ TOKEN="刚刚获得的TOKEN"
$ CREATE_ID="刚刚获得的Bot的用户ID"
$ for file in $(ls)
do
name=$(echo $file | cut -d . -f 1)
curl -X POST -H "Authorization: Bearer ${TOKEN}" \
-H "Content-Type: multipart/form-data" \
-F "emoji={\"name\":\"${name}\",\"creator_id\":\"${CREATER_ID}\"}" -F "image=@./${file}" \
https://<Mattermost URL>/api/v4/emoji
done
这样,文件名将被注册为表情符号。