关于 Mixin Messenger

Mixin Messenger 是一个开源的端对端加密聊天软件,并且集成了基于 Mixin Network 的多链钱包。

安全:端对端加密保障消息安全,去中心化、可信代码保障钱包安全

免费:免费收发消息,免费转账

易用:手机号注册即可使用,6 位数字支付密码即可享受数字加密货币

快速:实时收发消息,实时享受转账服务

丰富:支持文字、贴纸、图片、语音、视频等消息;支持 23 条主链,超过 10 万种代币

注意 Mixin Messenger 没有专门推荐机器人的界面,现在和以后都也不会有,机器人开发好后需要开发者自己想办法推广。早期在 Mixin Messenger 里推广自己的机器人是很容易的,做好了往群机器人一发大家都知道了,能帮你获得珍贵的种子用户,Exin(7000101276)就是一个很好的例子

准备

1、注册成为 Mixin 的开发者

注册登录 Mixin Messenger ,点首页底部 ⭕️打开摄像头界面扫码登录 https://developers.mixin.one (点右上角)

2、创建机器人

点 Create New App 按提示创建就行, 创建完即可在 Mixin Messenger 首页顶部输入机器人的 ID 搜索找到你创建的机器人

机器人的 Identity Number

创建机器人参数说明:

The home uri

机器人入口,Mixin Messenger 里打开机器人实际上打开一个内置 WebView 的弹窗,WebView 会默认加载你设置的 home uri。

The OAuth redirect uri

OAuth 授权回调,必填项。

推荐上传 512x512 像素图标作为机器人的图标

3、生成机器人相关的 Session

点 Click to generate a new session 生成 PIN、Session Id 、Pin Token、Private Key,这些都要记下来后面要用,服务器和浏览器都不会保存这些敏感信息(注意刷新再次点又会生成一个新的,会覆盖旧的)。

4、OAuth 授权

4.1 权限列表

权限

说明

PROFILE:READ

获取用户基本信息,例如 UserID、Mixin ID、名称、头像

ASSETS:READ

读取用户资产列表,资产余额,充值、提现和转账数据

PHONE:READ

读取用户手机号

CONTACTS:READ

读取用户联系人列表,禁言列表

4.2 申请授权

client_id 参数是步骤 3 图中的 User Id

response_type 固定写 code 就行

4.3 授权成功回调

Mixin Messenger 授权成功后会回调步骤 2 填写的 redirect uri ,并且返回一个 authorization code ,通过 https://api.mixin.one/oauth/token 验证成功后会返回 access token 存起来,后续可以用 access token 通过 API 访问用户数据,据此可以判断当前用户是否已经授权过了。参考官方开发者指南里 Request Access Token 章节: https://developers.mixin.one/guides

5、通过 API 访问授权用户的数据

访问授权用户的个人资料、资产列表等 API 都需要设置 Authorization Token, 直接用上面取到的 access_token 即可。

GET -H "Authorization: Bearer ACCESS_TOKEN" https://api.mixin.one/me

{

"data": {

"type": "user",

"user_id": "773e5e77-4107-45c2-b648-8fc722ed77f5",

"name": "Team Mixin",

"identity_number": "7000"

}

}

访问以下 API 都需要相应的授权,需要在步骤 4 申请授权时设置,常用 API :

/me 获取授权用户的个人信息,例如 user_id、name 等,如果后续需要和用户交互可以把用户信息保存到你服务端的数据库里,例如给用户发消息,记录用户的支付信息等。参考 API:https://developers.mixin.one/api/beta-mixin-message/read-profile/

/assets 获取授权用户的资产列表,包含余额信息,其中 asset id 是 Mixin Network 中的数字资产的唯一标识,参考 API :https://developers.mixin.one/api/alpha-mixin-network/read-assets/

/blocking_users 获取授权用户的禁言列表,可实现屏蔽大群机器人被禁用户的消息

当 API 返回 401 时你需要清理旧的 access_token 然后重新请求授权

6、Schema 支持

支付

https://mixin.one/pay?recipient=&asset=&amount=&memo=&trace=

recipient 是收款人的 User Id,asset 是具体支付资产 id,amount 支付金额,memo 支付备注(可以不传),trace 支付唯一编号 UUID

trace 可以用来防止重复支付,每一笔交易都应该生成一个新的 trace。可以用轮询的方式根据 trace 调用 https://api.mixin.one/transfers/trace/[trace_id] 来检测是否已经完成支付,参加js 代码 里的 handleOrderCreate 方法。

7、通过 JS 获取当前的 Conversation ID

可以从某个会话中打开机器人,例如发红包、抢红包、打赏等操作,机器人可以 js 调用 prompt('MixinContext.getContext()') 获得当前的 Conversation ID,具体参考代码 https://github.com/MixinNetwork/mixin.one/blob/master/src/utils/mixin.js 。如果获取失败或者为空,说明不是从某个会话中打开的机器人页面。

8、给用户发消息

知道用户 ID 就可以给用户直接发消息,可以通过用户授权、用户主动发消息或用户主动添加机器人为联系人三种方式来获取用户 ID。

当用户添加机器人为联系人时 Mixin 的消息服务器会给机器人发一个 hi ,也可以通过这种方式获取用户的 ID。

消息类型

消息类型

说明

PLAIN_TEXT

文字

PLAIN_IMAGE

图片

PLAIN_VIDEO

视频

PLAIN_DATA

文件

PLAIN_STICKER

贴纸

PLAIN_CONTACT

联系人(名片)

APP_BUTTON

按钮

APP_BUTTON_GROUP

按钮组

APP_CARD

卡片,抢红包就是用的这种样式

PLAIN_LIVE

直播,样式和视频一样,左上角显示一个 LIVE 标识

APP_BUTTON_GROUP、APP_CARD 和 PLAIN_LIVE 都是 Mixin Messenger 为机器人特别支持的样式

APP_BUTTON 的 action 支持 input:SOMETHING 。例如当前的 App Button 的 action 是 “input:subscribe” ,当用户点击这个按钮时客户端会自动发送一条 “subscribe” 的消息给机器人,开发者可以任意指定 input 后面的文字。

消息发送

需要有 Conversation ID 才能发消息, 1 对 1 会话使用 message.go 的 UniqueConversationId 方法生成

通过 WebSocket 发消息

连接 WebSocket 后通过 blaze.go 的 SendPlainText、SendContact 等方法发消息

通过 HTTP 批量发消息

调用 message.go 的 PostMessage 方法发送消息

机器人只能发 PLAIN_ 开头的不加密消息,representative_id 参数主要用于大群机器人用来标识当前发消息的用户

9、接收用户发给机器人的消息

即使将机器人添加到多人群组,机器人也收不到群组产生的消息,群组的消息都是加密的,机器人只能处理未加密的消息。

注意收到消息处理完以后一定要发 ACKNOWLEDGE_MESSAGE_RECEIPT 类型的消息告诉 Mixin Messenger 服务器你已经收到了消息,否则每次给服务器发 LIST_PENDING_MESSAGES 都会再次发给你的小程序。(Go 的 SDK 已经默认处理了)

10、大群机器人

Mixin Messenger 的无上限大群是通过机器人中转消息来实现的,具体参考文章:

11、优化小程序

12、资源

Exin 团队基于 Mixin Messenger 开发的各种交易工具已经实实在在的获取到几万真实用户并且已经赚到钱!欢迎加入与 Mixin 共同成长,获取你宝贵的种子用户!

java mixin_Mixin Messenger 机器人接入指南相关推荐

  1. JAVA微信开发-新手接入指南

    相信很多人对微信开发已经不那么陌生,我也是从一个微信开发的菜鸟经过各种问题的折磨,然后去搜索引擎搜索各种文章阅读,但是基本都是零散的资料,没有一个统一.系统的阐述微信应用如何开发.作者结合自己的实际开 ...

  2. 图灵机器人SDK接入指南

    图灵机器人SDK接入指南 图灵机器人:官网 注册账号 注册个账号,创建个应用,进入后台,点开机器人接入,你会看到API key和secret 下载SDK 点击下载Android SDK,解压以后会有l ...

  3. Java支付宝身份验证接口接入指南(人脸验证)

    Java支付宝身份验证接口接入指南 最近公司项目有人脸身份核验的需求,首先就想到了支付宝的身份验证接口,于是就需要看支付宝的开放api文档,这里就有些坑,然后就本次接入遇到的坑,做个整理.(基于web ...

  4. Java实现钉钉自定义机器人接入

    Java实现钉钉自定义机器人接入 1. 钉钉自定义机器人接入概述 1.1 钉钉机器人简介 1.2 自定义机器人接入 2. 钉钉自定义机器人接入实现 2.1 场景介绍 2.2 调用频率限制 2.3 创建 ...

  5. 验证码短信 API 接入指南:Java 语言示例代码

    短信验证码是一种通过短信发送的验证码,通常用于验证用户的身份.保障账户安全和防止恶意攻击等.短信验证码已经成为现代社会中不可或缺的一部分,广泛应用于各种场景,包括用户注册和登录.找回密码等等. 为了满 ...

  6. Java制作Facebook Messenger机器人的7个简单步骤(转载)

    克隆$ git clone git@github.com:ramswaroop/jbot.git项目. 创建Facebook应用程序和页面. 为页面生成页面访问令牌(在应用程序的信使设置中). 将上面 ...

  7. 如何用 Python 和 Flask 建立部署一个 Facebook Messenger 机器人

    这是我建立一个简单的 Facebook Messenger 机器人的记录.功能很简单,它是一个回显机器人,只是打印回用户写了什么. 回显服务器类似于服务器的"Hello World" ...

  8. Apollo使用指南(二)公共组件接入指南

    2.1 公共组件和普通应用的区别 公共组件是指那些发布给其它应用使用的客户端代码,比如CAT客户端.Hermes Producer客户端等. 虽然这类组件是由其他团队开发.维护,但是运行时是在业务实际 ...

  9. Apollo使用指南(一)普通应用接入指南

    写在前面: 最近在学习apollo方面的知识,apollo目前托管在GitHub上,相关文档也主要在GitHub上.出于学习的需要,也因为最近众所周知的旧问题和新阻碍,为了能更方便和稳定的访问到这些内 ...

最新文章

  1. 巨杉数据库完成数千万美元C轮融资,嘉实投资领投
  2. OpenCV Mat类详解和用法(官网原文)
  3. 虚拟服务器 cms安装,轻量化云服务器怎么安装cms
  4. 弄断过河电缆_你说的是:剪断电缆线
  5. 在windows 2003系统安装oracle11G出现的问题
  6. java中将字符串顺序反传转_如何在Java中将字符串序列化的Erlang术语反序列化为JInterface对象?...
  7. SQLite/嵌入式数据库
  8. python只读模式可以打印嘛_只读python属性?无法打印对象
  9. Latex 中cite的使用
  10. vue 鼠标点击事件_点击鼠标,利用VBA代码实现精准控制触发事件的第二方案
  11. Java进阶:SpringMVC中获取web.xml中的全局参数
  12. AutoCAD实用功能之查看xdata扩展属性
  13. telnet 命令参数及其应用方式
  14. PDA用ActiveSync同步上网 方法
  15. CRM客户管理系统(Java)
  16. SDCC编译器 + VSCode开发 8位微控制器
  17. 【2629】Identity Card 【比较坑 / 水题】
  18. 教你一招利用python在网上接单赚钱,月薪过万太香了
  19. android动画结束保持,【Android】 动画
  20. MySQL函数大全及用法示例

热门文章

  1. #define中的“\”作用
  2. c语言之strftime与strptime
  3. 【Visual Studio 2022】VS2022安装教程
  4. 2016校招真题解析(一)小米git
  5. 使用HTML语言和CSS开发商业站点_HTML基础
  6. 图11——判断图中是否为一棵树
  7. 消息服务器更新库存,数据中心降温 2019年服务器存储器进入库存调整
  8. 金职院计算机网络技术中外合作有什么不一样,重庆电子工程职业学院与加拿大卡纳多文理学院合作办学“计算机网络技术专业”2019级新生开学典礼隆重举行...
  9. python语言基础(最详细版)
  10. pip install pygame无法下载的解决方案