这是一个通过给公众号绑定微信智能对话机器人调用第三方云函数实现用户信息查询的简单示例。
一:微信智能对话机器人配置:
1:在“高级技能”中创建“查询用户”的技能,并创建对应的意图。
2:设置字典,也可以根据查询关键字的特点(如:用户编号都是以1开头)配置好用来匹配数据的正则表达式。
3:在用户问法中输入:{用户id},这样当用户发送用户编号给机器人时系统才能匹配到。
4:配置好对应的语义槽,语义槽类似于短信中用来填充数据的模板。
二:第三方云函数配置
1:云函数的功能是通过用户的提问(即:用户id)去查询数据库,并返回对应数据给微信机器人。
/**
* 查询用户详细信息。
*/
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
// 云函数入口函数
exports.main = async (event, context) => {
const db = cloud.database()
const _ = db.command
const $ = db.command.aggregate
var keyWord = event.queryStringParameters.keyWord * 1
var returnString = ""
await db.collection('userInfo')
.where({
id: keyWord
}).get().then(res => {
// res.data 包含该记录的数据
returnString = {
"err_code": 0, // 状态码,可在获得响应后区分下一步操作
"data_list": [
{ // 目前返回信息需要包裹在 `data_list` 中唯一对象内
"id": res.data[0].id, // 参数,可在获得响应后填充进对应语义槽
"username": res.data[0].username,
"address": res.data[0].address,
"phone": res.data[0].phone,
"type":res.data[0].type,
// "event":event
}
]
}
})
return returnString
}
2:利用微信开发者工具调试好程序后部署到云端。
3:进入腾讯云控制台,找到上传后的云函数并设置HTTP访问服务。
其触发路径为上图两部分相连。
三:配置机器人的回复。
1:在机器人回答部分选择服务接口调用,并自定义接口。
URL为云函数的触发路径。
其输入参数为调用云函数时传递的数据。云函数中可以通过如下方式获取:
var keyWord = event.queryStringParameters.keyWord
输出参数为对应云函数中的返回数据:
returnString = {
"err_code": 0, // 状态码,可在获得响应后区分下一步操作
"data_list": [
{ // 目前返回信息需要包裹在 `data_list` 中唯一对象内
"id": res.data[0].id, // 参数,可在获得响应后填充进对应语义槽
"username": res.data[0].username,
"address": res.data[0].address,
"phone": res.data[0].phone,
"type":res.data[0].type,
// "event":event
}
]
}
2:配置接口
配置接口的作用是让输入参数和输出参数与定义好的语义槽进行对接。系统才能把数据传递和填充到对应的语义槽。
当调用成功时回复用户文本消息。
通过调试、发布并绑定公众号后一个可以通过公众号查询用户详细信息的对话机器人已配置完成。