Mixin Messenger 是 Mixin Network 上第一个 DApp,使用简单功能强大:
Mixin Messenger 不会主动向用户推荐任何小程序(包括官方自己开发的小程序),也没有专门的界面来显示推荐小程序列表,需要开发者自己想办法推广自己的小程序。早期在 Mixin Messenger 里推广自己的小程序是很容易的,做好了往大群一发大家都知道了,能帮你获得珍贵的种子用户,Exin(7000101276)就是一个很好的例子。
通过 Mixin Messenger 扫码登录 https://developers.mixin.one (点右上角)。
点 Create New App 按提示创建就行, 创建完即可在 Mixin Messenger 里搜索找到你创建的小程序(首页右上角联系人 -> 添加联系人 -> 输入 Mixin App Id 点搜索 -> 打开小程序)
点 Click to generate a new session 生成 PIN、Session Id 、Pin Token、Private Key,这些都要记下来后面要用,服务器和浏览器都不会保存这些敏感信息(注意刷新再次点又会生成一个新的,会覆盖旧的)。
要访问用户个人资料、资产列表、联系人列表和手机号码,你需要通过 Mixin Messenger 向用户申请授权
https://developers.mixin.one/api/beta-mixin-message/oauth-scopes/
检测到用户没有授权时跳转页面至 https://mixin.one/oauth/authorize?client_id=b7347ca4-186e-4e54-9db6-755a4ab0b5d4&scope=PROFILE:READ+ASSETS:READ&response_type=code 引导用户授权,在浏览器里打开这个链接会显示一个二维码,在 Mixin Messenger 中打开就会直接唤起请求授权弹窗。
Mixin Messenger 授权成功后会回调步骤 2 填写的 redirect uri ,并且返回一个 authorization code ,通过 https://api.mixin.one/oauth/token 验证成功后会返回 access_token ,这个很重要需要保存起来,据此可以判断当前用户是否已经授权过了。参考官方开发者指南里 Request Access Token 章节: https://developers.mixin.one/guides
访问授权用户的个人资料、资产列表等 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.1 申请授权时设置:
当 API 返回 401 时你需要清理旧的 access_token 然后重新请求授权
https://mixin.one/pay?recipient=b26b9a74-40dd-4e8d-8e41-94d9fce0b5c0&asset=965e5c6e-434c-3fa9-b780-c50f43cd955c&amount=1000.00000000&memo=hKFUoUyhUKowLjAxMDAwMDAwoVOhQaFB3AAQzIFbCxonZDc2zI/MqkLM1syUzPpiCg==&trace=a8b135d7-f757-4eea-9c47-060ad8804945
测试如果显示已支付了给 trace 参数换一个新的 UUID 然后刷新一下即可
https://mixin.one/transfer/b26b9a74-40dd-4e8d-8e41-94d9fce0b5c0
https://mixin.one/users/b26b9a74-40dd-4e8d-8e41-94d9fce0b5c0
你可以给用户发各种文字、贴纸、图片、语音、视频等消息,实现订阅号类似的功能,参考 https://github.com/MixinNetwork/bot-api-go-client/blob/master/message.go 的 PostMessage 方法发送消息,参考 https://developers.mixin.one/api/beta-mixin-message/websocket-messages/ 设置具体消息类型和相关参数。
当一个新用户添加你的小程序为好友时,小程序监听 WebSocket 会收到“Hi”的消息(Mixin Messenger 服务端替用户发的,用户自己看不见),据此小程序可以给用户发一些引导信息或者欢迎信息。注意不能根据这个来判断用户是否添加了你的小程序为好友,因为用户也可以直接给小程序发“Hi”。
使用 WebSocket 监听消息,参考文档 https://developers.mixin.one/api/beta-mixin-message/authentication/ ,参考源码 https://github.com/crossle/hacker-news-mixin-bot 的 blaze.go 和 message.go 。
强烈推荐学习使用 PWA 来改善您小程序的体验(https://developers.google.com/web/ilt/pwa/)