一、什么是云开发?
这是我参与新手入门的第2篇文章,开发者可以使用云开发开发微信小程序、小游戏,无需搭建服务器,即可使用云端能力。
云开发为开发者提供完整的原生云端支持和微信服务支持,弱化后端和运维概念,无需搭建服务器,使用平台提供的 API 进行核心业务开发,即可实现快速上线和迭代,同时这一能力,同开发者已经使用的云服务相互兼容,并不互斥。
云开发分成四类云函数, 数据库, 存储, 云调用, 这里微信文档有详细介绍
二、微信小程序云函数客服消息使用?
2.1 前端在小程序代码中添加
// 用户点击按钮,自动进入小程序客服聊天会话
<button open-type="contact" bindcontact、="handleContact"></button>
2.2 后端使用云函数消息推送需要配置
开发者工具云开发控制台中增加配置,配置选择推送模式为云函数
添加消息推送配置。
2.3 如果你是uniapp使用微信小程序云函数功能,需要执行以下步骤
配置 manifest.json
/* 小程序特有相关 */
"mp-weixin" : {
"cloudfunctionRoot": "./cloudfunctions/", // 配置云开发目录
},
下载npm包
npm init -y
npm install --save path copy-webpack-plugin@5.0.0 webpack@4.0.0
配置打包
// 项目中创建vue.config.js文件
const path = require("path")
const CopyWebpackPlugin = require("copy-webpack-plugin")
// npm install --save path copy-webpack-plugin@5.0.0 webpack@4.0.0
module.exports = {
configureWebpack: {
plugins: [
new CopyWebpackPlugin([
{
// from 为要打包的文件
// to 为输出(复制)到哪
// cloudfunctions 为存放云函数对应文件夹
from: path.join(__dirname, 'cloudfunctions'),
to: path.join(__dirname, 'unpackage/dist', process.env.NODE_ENV === 'production' ? 'build' : 'dev', process.env.UNI_PLATFORM, 'cloudfunctions')
}
])
]
}
}
在cloudfunctions文件夹写云函数js
const cloud = require('wx-server-sdk')
cloud.init({
// API 调用都保持和云函数当前所在环境一致
env: cloud.DYNAMIC_CURRENT_ENV
})
// 云函数入口函数
exports.main = async (event, context) => {
const { OPENID, APPID } = cloud.getWXContext();
let { Content } = event
try {
let msg = {}
switch (Content) {
case "1":
case "客服"
let openid = event.FromUserName
let appId = event.ToUserName
let CreateTime = event.CreateTime
return {
MsgType: 'transfer_customer_service',
ToUserName: openid,
FromUserName: appId,
CreateTime: CreateTime,
}
break;
default:
msg = {
touser: OPENID,
msgtype: 'text',
text: {
content: "您好,很高兴为您服务,以下自动回复。\n回复1:人工客服"
}
}
}
console.log("success event", event)
await cloud.openapi.customerServiceMessage.send(msg);
return 'success';
} catch (err) {
console.log("err event", event)
console.log("err msg", err)
return err
}
};
三、总结
多看文档,少踩坑,虽然客服转发的参数跟文档有点不一样,得看开源java的代码才知道问题所在