进入聊天工具模式后,获取群聊
聊天工具
可前往 MP能力地图-社交能力-聊天工具 申请开通
一、功能介绍
聊天工具模式,是为了助力小游戏能更出色地跟微信聊天相融合进而特意推出的一种模式,此模式能够用于达成群任务、群PK、群抽奖等功能,它跟小游戏普通模式相比较,开放了更多跟聊天紧密关联相契合的能力。
关于聊天成员的相关能力,开发者能够调用聊天成员选择器,进而获取成员相关的id,借助开放数据域去渲染聊天成员的头像昵称。
具备发送内容至聊天的能力,此能力可供开发者使用,借此能够将文本、提醒、图片、表情、视频等内容类型发送至聊天当中。
动态消息具备这样的能力,小程序卡片之上的辅标题能够进行动态更新,当用户完成或者参与了活动之后,会下发系统消息。
开发者能够经由「小游戏示例 - 接口Tab - 聊天工具这般的」入口去体验由平台所推出的Demo,并且还能下载示例代码。
二、开发指南
从基础库 3.7.12 开始支持
该平台支持的版本情况为,在安卓系统方面,微信版本需达到8.0.56及以上,在iOS系统方面,微信版本同样需达到8.0.56及以上。
1.聊天工具模式的进入与退出 1.1.进入聊天工具模式
进入聊天工具模式之际,得绑定一个微信单聊或者群聊的聊天室爱游体育app下载官网,当下存在三种进入的方式。
在小程序处于普通模式的情况下,开发者调用 wx.openChatTool 时,若不传入聊天室id,微信会将聊天列表拉起,以供用户进行选择,用户做出选择之后,会绑定聊天室爱游戏app官方入口最新版本,进而进入聊天工具模式。
当小程序处在普通模式之时,开发者去调用 wx.openChatTool 并将聊天室 id 在接口里进行传入,针对群聊来讲是 opengid,但就单聊而言是 open_single_roomid,如此便会直接绑定该聊天室进而进入。
用户于聊天工具模式内,将各类内容发送至绑定的聊天,之后,当用户从该同一个聊天的这些内容入口再次返回小程序时,会以聊天工具模式打开,并且此时绑定的聊天保持不变。
1.2.退出聊天工具模式
调用 wx.exitChatTool 即可退出聊天工具模式
1.3 聊天工具模式的判定
开发者能够凭借 wx.isChatTool 函数的返回值这个途径来判断当下是不是处于聊天模式,该函数那返回的值可是 boolean类型的。
2.聊天成员相关能力 2.1.获取聊天相关id接口
聊天工具模式下有以下3种id信息:
opengid:微信群的唯一标识id
open_single_roomid:单聊的唯一标识id
group_openid,它是微信用户于这个聊天室之下的唯一标识,而且同一个用户在不一样的聊天室之下,该id是不一样的。
相关接口如下:
进入聊天工具里的群模式之前,去获取群聊的id相关信息,借助wx.getGroupEnterInfo。
当进入聊天工具模式之时,借助wx.getChatToolInfo,去获取群聊id方面的信息。
这两个接口存在区别,在聊天工具模式当中使用时,推荐运用 wx.getChatToolInfo 达成相关绑定群信息的获取事宜。在步入聊天工具模式以前,如果是从小程序群聊会话卡片开启小程序,此时期望对卡片所在群组进行复用,那么经过 wx.getGroupEnterInfo取得卡片所在群的opengid,并且在 wx.openChatTool 时将其传入,这样一来便能够不唤起群选择列表,直接进入。
2.2.选择聊天成员接口
开发者能够调用wx.selectGroupMembers,以此让用户去选择聊天室的成员,之后返回所选择成员的group_openid。需要留意的是,要是当前聊天室属于单聊,那么便直接返回对方用户的group_openid,且不再拉起选择器。
2.3.渲染聊天成员的头像昵称
于开放数据域之中,调用 wx.getGroupMembersInfo 这个操作,能够获取到聊天成员的头像,还能够获取到聊天成员的昵称。
3.发送到聊天能力
小程序卡片能发送到聊天中,提醒消息也能发送到聊天中,文本同样可以发送到聊天中,图片也能够发送到聊天中,表情也可以发送到聊天中,相关接口如下:
wx.shareAppMessageToGroup这一操作,是要把小程序卡片发送出去,发送的对象是绑定的聊天室。
微信通知群成员中的 wx.notifyGroupMembers,用于提醒用户去完成任务,所发送的内容,会由微信进行拼接,组成这样的形式:@的成员列表,再加上“请完成:”或者“请参与:”,接着是打开小游戏的文字链,就好比像「@alex @cindy 请完成:团建报名统计」这种样子。
wx.shareTextToGroup,把文本内容,发送到,绑定的聊天室。
wx.shareImageToGroup,把图片传至绑定的聊天室。
将表情发送到绑定的聊天室,这一操作是通过wx.shareEmojiToGroup来达成的。
把视频运用 wx.shareVideoToGroup 发送至绑定的,聊天室。
4.动态消息能力
处于聊天模式时,借助 wx.shareAppMessageToGroup 来发送的小程序卡片,能够获取动态消息能力,用户的表现涵盖:
1、小程序卡片上的辅标题可以动态更新
2、能够于聊天里下发系统消息爱游戏app官方网站登录入口,内容是:成员A加上“完成了”或者“参与了”,再加上成员B以及“发布的”,还有打开小程序的文字链,像「alex完成了cindy发布的团建报名统计」。
4.1.创建activity_id
服务端借助创建activity_id接口,来创建activity_id,进而声明分享卡片是动态消息。
4.2.声明分享卡片为动态消息
在前端调用 wx.shareAppMessageToGroup 之前,借助 wx.updateShareMenu ,表明将被分享的卡片是动态消息,其请求参数如下。
注意事项:
useForChatTool是true的时候,chooseType和participant才会起作用,才会产生效果。
chooseType等于1,这意味着是按照所指定的participant来将其当作参与者。
chooseType等于2,这意味着群里的每一个成员都是参与者,其中涵盖了后来才加入这个群的成员。
代码示例
wx.updateShareMenu({
withShareTicket: true,
isUpdatableMessage: true,
activityId: 'xxx',
useForChatTool: true,
chooseType: 1,
participant: that.data.members,
templateInfo: {
templateId: '4A68CBB88A92B0A9311848DBA1E94A199B166463'
},
)
存在两个可供使用的模版,关于模版的区别,其中target_state与participator_state所具有的含义,需观看第三步才能知晓。
模板标识号4A68CBB88A92B0A9311848DBA1E94A199B166463,2A84254B945674A2F88CE4970782C402795EB607。
动态消息发布者在小程序卡片中看到的辅标题
target_state=1或2:X人已完成;
target_state=3:已结束
target_state=1或2:X人已参与;
target_state=3:已结束
参与者在小程序卡片中看到的辅标题
participator_state=0时:
target_state=1:未完成,
target_state=2:即将截止,
target_state=3:已结束;
participator_state=1时:
target_state=1或2:已完成,
target_state=3:已结束
participator_state=0时:
target_state=1:未参与,
target_state=2:即将截止,
target_state=3:已结束;
participator_state=1时:
target_state=1或2:已参与,
target_state=3:已结束。
非参与者在小程序卡片中看到的辅标题
target_state=1或2:你无需完成;
target_state=3:已结束
target_state=1或2:你无需参与;
target_state=3:已结束
参与者变为完成态下发的系统消息文案
aaa 已完成 bbb 发布的 XXX
aaa 已参与 bbb 发布的 XXX
活动状态变成已结束
bbb发布的xxx已结束
bbb发布的xxx已结束
4.3.更新活动状态或用户完成情况
服务端运用设定聊天工具消息的接口,来对活动状态以及用户完成情况予以更新。并且,还能够借助云开发的聊天工具消息发送接口,借此来实施调用来完成更新。
调用示例:
//变更单个成员状态,会触发提醒「 aaa 已参与 bbb 发布的 xxxx 」
{
"activity_id": "xxx",
"target_state":1,
"version_type": 0,
"participator_info_list": [
{
"group_openid": "aaa",
"state": 1
},
{
"group_openid": "bbb",
"state": 1
}
]
}
//变更动态消息状态,会触发提醒「 bbb 发布的 xxxx 已结束」
{
"activity_id": "xxx",
"target_state":3,
"version_type": 0,
}
5.聊天工具模式内禁用的能力
以下能力暂不支持聊天工具模式下使用,请开发者做好适配。