教你使用企业微信sendChatMessage分享H5消息到当前对话(经验分享)

时间:2022-10-19 17:06:51

前两天公司让给企业微信自建应用添加一个分享h5消息到当前会话,由于之前没接触过所以走了很多弯路,现在分享给大家,有需要能用到的可以看看。

正文:

刚开始写接触的宝宝,一定要看企业微信文档:

分享消息到当前会话 - 接口文档 - 企业微信开发者中心 (qq.com):​https://developer.work.weixin.qq.com/document/path/94797​

我们先看一下官方文档:

1. 必须先成功调用agentConfig,否则调用时会报“no permission”错误。

2. media_id可以通过素材管理接口获得,暂不支持公众平台的mediaid。

3. 需要从特定入口进入页面才可调用,否则会报错:without context of external contact,可先通过调用getContext来判断进入小程序的入口,允许调用的入口说明参见“不同入口所需的权限说明”。

4. 从不同的入口进入的页面,应用需要满足相应用的权限,否则会报“no permission”错误,所需的权限参见“不同入口所需的权限说明”。

5. 企业微信3.1.0及以后版本支持小程序类型的消息格式(mac端暂不支持)。

1. 需要引入 jwxwork sdk

<script src="​https://open.work.weixin.qq.com/wwopen/js/jwxwork-1.0.0.js​"></script>

2. 配置

  配置客户联系功能权限:

概述 - 接口文档 - 企业微信开发者中心 (qq.com):

概述 - 文档 - 企业微信开发者中心 (qq.com)

3. 分享自定义消息到当前会话

我写的的分享H5页面,其他也有很多可以看文档哈!

代码:

getWorkAgentConfig(location.href).then(res => {
jWeixin.agentConfig({
corpid: res.data.corpid, // 必填,企业微信的corpid,必须与当前登录的企业一致
agentid: res.data.agentid, // 必填,企业微信的应用id (e.g. 1000247)
timestamp: res.data.timestamp, // 必填,生成签名的时间戳
nonceStr: res.data.nonceStr, // 必填,生成签名的随机串
signature: res.data.signature, // 必填,签名,见附录-JS-SDK使用权限签名算法
jsApiList: ["getCurExternalContact", "getCurExternalChat", "getContext", "chooseImage", "sendChatMessage", ],
success: function(res) {
console.log(res)
},
});
jWeixin.invoke('sendChatMessage', {
msgtype: "news", //消息类型,必填
enterChat: true, //为true时表示发送完成之后顺便进入会话,仅移动端3.1.10及以上版本支持该字段
news: {
link: "https://test.pro.wuht.net/pages/goods_details/index?id=" + item.id, //H5消息页面url 必填
title: item.store_name, //H5消息标题
desc: "", //H5消息摘要
imgUrl: item.image, //H5消息封面图片URL
},
}, function(res) {
if (res.err_msg == 'sendChatMessage:ok') {
console.log('发送成功', res)
//发送成功
} else {
//发送失败
console.log('发送失败', res)
}
})
})


(我这里用的是jWeixin代替wx,因为uniapp和wx冲突,打包后会忽略wx,所以你们如果用wx无效那就使用jWeixin)

企业微信JS-SDK关于分享自定义消息:

分享接口 - 接口文档 - 企业微信开发者中心 (qq.com)​https://developer.work.weixin.qq.com/document/path/90490​

以上就是crmeb分享的所有内容,如果对你有所帮助,还清多多关注我们crmeb