ASR/cloudfunctions/openapi/index.js

66 lines
1.7 KiB
JavaScript
Raw Normal View History

2020-08-31 16:55:41 +00:00
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({env : "asr-v3kua"})
async function sendTemplateMessage(event) {
const {OPENID} = cloud.getWXContext()
// 接下来将新增模板、发送模板消息、然后删除模板
// 注意:新增模板然后再删除并不是建议的做法,此处只是为了演示,模板 ID 应在添加后保存起来后续使用
const addResult = await cloud.openapi.templateMessage.addTemplate({
id: 'AT0002',
keywordIdList: [3, 4, 5]
})
const templateId = addResult.result.templateId
const sendResult = await cloud.openapi.templateMessage.send({
touser: OPENID,
templateId,
formId: event.formId,
page: 'page/cloud/pages/scf-openapi/scf-openapi',
data: {
keyword1: {
value: '未名咖啡屋',
},
keyword2: {
value: '2019 年 1 月 1 日',
},
keyword3: {
value: '拿铁',
},
}
})
await cloud.openapi.templateMessage.deleteTemplate({
templateId,
})
return sendResult
}
async function getWXACode() {
const {result} = await cloud.openapi.wxacode.getUnlimited({
scene: 'x=1',
})
// 此处返回 Base64 图片仅作为演示用,在实际开发中,
// 应上传图片至云文件存储,然后在小程序中通过云文件 ID 使用
return `data:${result.contentType};base64,${result.buffer.toString('base64')}`
}
// 云函数入口函数
// eslint-disable-next-line
exports.main = async (event) => {
switch (event.action) {
case 'sendTemplateMessage': {
return sendTemplateMessage(event)
}
case 'getWXACode': {
return getWXACode(event)
}
default: break
}
}