互动消息是用于加强直播间消息沟通、提升交互体验的服务。提供了丰富、易集成的SDK,可在用户开发的直播应用中轻松集成评论、弹幕、点赞等能力。本文介绍微信小程序集成互动消息应用的操作步骤。
前提条件
服务端集成
客户端集成前,请确保已完成服务端集成,并提供客户端访问的获取鉴权Token的接口。详细操作,请参见服务端集成。
小程序后台配置服务器域名
登录微信公众平台。
在左侧导航栏选择开发 > 开发管理。
在开发设置页面,将如下域名配置到服务器域名中。
request合法域名:以HTTPS开头的域名
https://slsrole.alicdn.com https://videocloud.cn-hangzhou.log.aliyuncs.com
socket合法域名:以wss开头的域名
wss://rcoims.rtn.aliyuncs.com
集成小程序SDK文件
下载SDK文件
点击下载 微信小程序SDK 到本地,解压得到 alivc-im.js 、alivc-im.wasm.br 两个文件。
原生小程序项目集成文件
如果您的项目是原生微信小程序项目,可以可通过以下2步集成SDK到项目中:
将alivc-im.js 、alivc-im.wasm.br 两个文件复制到项目 /lib 文件夹下。
修改初始化时指定引入的 wasm 的地址,详细请查看初始化。
项目目录结构请参考下方的示例:
.
├── lib
│ ├── alivc-im.js
│ ├── alivc-im.wasm.br
├── pages
│ ├── index
│ │ ├── index.js
│ │ ├── index.json
│ │ ├── index.wxml
│ │ └── index.wxss
uni-app 项目集成文件
如果您的项目是基于 uni-app 框架编译为微信小程序的,可通过以下3步集成SDK到项目中:
将 alivc-im.js 文件放入 /lib 文件夹下。
将 alivc-im.wasm.br 文件放入 /static/mp-weixin 文件夹下。这样编译时就能将alivc-im.wasm.br 文件拷贝到编译后的生产目录中。
将初始化 init 接口的 locateFile 返回的地址修改为 /static/mp-weixin/alivc-im.wasm.br,详细请查看初始化。
项目目录结构请参考下方的示例:
.
├── lib
│ ├── alivc-im.js
├── static
│ ├── mp-weixin
│ │ ├── alivc-im.wasm.br
├── pages
│ ├── index
│ │ ├── index.vue
Taro 项目集成文件
如果您的项目是基于 Taro 解决方案编译为微信小程序的,可通过以下4步集成SDK到项目中:
将 alivc-im.js 文件放入 /src/lib 文件夹下。
将 alivc-im.wasm.br 文件放入 /static 文件夹下。
修改项目配置文件 /config/index.js 的 copy 配置项将 /static 文件夹从源码目录直接拷贝到编译后的生产目录中。
参考下方示例修改配置文件:
const config = { projectName: "demo", outputRoot: "dist", copy: { patterns: [ // 将 static 文件夹拷贝到代码编译后的生产目录下 { from: 'static', to: 'dist/static' } ], options: {}, }, // 省略其他配置项 }; module.exports = function (merge) { if (process.env.NODE_ENV === "development") { return merge({}, config, require("./dev")); } return merge({}, config, require("./prod")); };
将初始化 init 接口的 locateFile 返回的地址修改为 /static/alivc-im.wasm.br,详细请查看初始化。
项目目录结构请参考下方的示例:
.
├── config
│ ├── index.js
│ ├── dev.js
│ ├── prod.js
├── static
│ ├── alivc-im.wasm.br
├── src
│ ├── lib
│ │ ├── alivc-im.js
│ ├── pages
│ │ ├── index
│ │ │ ├── index.tsx
使用SDK
SDK使用需遵循如下操作顺序:
初始化
登录
相关操作
登出
反初始化
其中相关操作包含群组操作和消息操作,详细说明如下:
注意事项
各ID需遵循以下规则
appid | 最长64位,仅限于A~Z,a~z, 0~9及“-”, 不能包含其他字符 |
userid | 最长64位,仅限于A~Z,a~z, 0~9及“-”, 不能包含其他字符 |
groupid | 最长64位,仅限于A~Z,a~z, 0~9及“-”, 不能包含其他字符 |
初始化
使用前需要进行初始化,可以在相关业务模块的主入口设置。
登录
登录需要鉴权信息,请确保已完成前提条件,即已通过服务端获取到鉴权信息,包括:timestamp、nonce、token等值。
群组操作
以下操作需要确保login异步操作成功后,方可执行。
获取群组管理器
添加和移除群组操作监听器
创建群组
仅限管理员调用,否则会调用失败。
关闭群组
仅限群主/群管理员调用,否则会调用失败。
进入群组
离开群组
查询群组信息
修改群组信息
支持修改群扩展信息和设置管理员,仅限群主/群管理员调用,否则会调用失败。
查询群组最近成员列表
查询群组全部成员
仅限群主/群管理员调用,否则会调用失败。
对群组进行禁言
仅限群主/群管理员调用,否则会调用失败。
对群组取消禁言
仅限群主/群管理员调用,否则会调用失败。
对群组的用户进行禁言
仅限群主/群管理员调用,否则会调用失败。
对群组用户取消禁言
仅限群主/群管理员调用,否则会调用失败。
查询群组内被禁言的用户列表
仅限群主/群管理员调用,否则会调用失败。
消息操作
获取消息管理器
添加和移除消息操作监听器
单发消息
群发消息
删除/撤回群消息
该接口执行成功后,接收者会收到回调。
查询最近群发消息列表
加入群组后,调用该接口可返回最近50条消息,所有类型的用户均可调用。
查询全部群发消息列表
仅限群主/群管理员调用,否则会调用失败。普通用户建议使用listRecentMessage接口获取最近50条消息。
查询历史消息
该接口主要用户直播结束后的历史消息回放,用户无需进入群组可查询,比较耗时,在直播过程中不建议使用,该接口后续会收费。
登出
await engine.logout();
反初始化
登出后如无需再进行登录,可以进行反初始化操作,SDK会对底层操作实例进行释放。
engine.unInit()