上傳配置 temp-cloud-callback-config.json 已經廢棄 后續會推出新的方式 --此路不通了 [20190620更]
需開發者工具版本:現在最新版本是RC v1.02.1905151
基礎庫:2.7.0
開通了雲開發的小程序可以使用雲函數接收消息推送,目前僅支持客服消息推送。
接入步驟如下:
1、開發者工具中填寫配置並上傳
2、雲函數中處理消息
第一步:開發者工具中填寫配置並上傳
在項目根目錄下新建消息推送配置文件 temp-cloud-callback-config.json 並在填寫完成后右鍵該文件選擇上傳配置。
配置文件格式如下(以客服消息推送配置為例):
{ "enable": true, "callbacks": [ { "msgType": 1, "functionName": "雲函數名", "env": "環境ID" } ] }
字段說明:
- enable: 只有為 true 時雲函數消息推送才會啟用,否則所有雲函數消息推送都不會生效
- callbacks: 接收推送的所有雲函數配置
- callbacks.msgType: 消息的 msgType,客服消息的 msgType 為 1
- callbacks.functionName: 接收消息推送的雲函數名稱
- callbacks.env: 雲函數所在環境
寫好后,右鍵該文件,選擇上傳配置。
第二步:雲函數中處理消息
雲函數被觸發時,其 event 參數即是接口所定義的 JSON 結構的對象(統一 JSON 格式,不支持 XML 格式)。
以客服消息為例,接收到客服消息推送時,event 結構如下:
{ "FromUserName": "ohl4L0Rnhq7vmmbT_DaNQa4ePaz0", "ToUserName": "wx3d289323f5900f8e", "Content": "測試", "CreateTime": 1555684067, "MsgId": "49d72d67b16d115e7935ac386f2f0fa41535298877_1555684067", "MsgType": "text" }
此時可調用客服消息發送接口回復消息,一個簡單的接收到消息后統一回復 “收到” 的示例如下:
// 雲函數入口文件 const cloud = require('wx-server-sdk') cloud.init() // 雲函數入口函數 exports.main = async (event, context) => { const wxContext = cloud.getWXContext() await cloud.openapi.customerServiceMessage.send({ touser: wxContext.OPENID, msgtype: 'text', text: { content: '收到', }, }) return 'success' }