微信小程序?qū)崿F(xiàn)自動回復(fù)圖片消息
前提
小程序已經(jīng)開通了“云開發(fā)”功能
在微信開發(fā)者工具中打開“云開發(fā)”,點(diǎn)“設(shè)置”,點(diǎn)擊“其它設(shè)置”,點(diǎn)擊“添加消息推送”(添加消息類型為“image”和“event”兩種消息推送設(shè)置),點(diǎn)擊“確定”
目前微信小程序用戶使用客服功能,必須通過固定的按鈕進(jìn)行觸發(fā),在下文展示
按鈕觸發(fā)后小程序會主動發(fā)送客服圖片消息
實(shí)現(xiàn)
小程序index.wxml文件中實(shí)現(xiàn)
需要將 button 組件 open-type 的值設(shè)置為 contact,當(dāng)用戶點(diǎn)擊后就會進(jìn)入客服會話,如果用戶在會話中點(diǎn)擊了小程序消息,則會返回到小程序,開發(fā)者可以通過 bindcontact 事件回調(diào)獲取到用戶所點(diǎn)消息的頁面路徑 path 和對應(yīng)的參數(shù) query,此外,開發(fā)者可以通過設(shè)置 session-from 將會話來源透傳到客服。
<button open-type="contact" bindcontact="handleContact" session-from="sessionFrom">客服</button>
云函數(shù)config.json配置文件
{ "permissions": { "openapi": [ "wxacode.get", "customerServiceMessage.send", "customerServiceMessage.uploadTempMedia" ] } }
小程序云函數(shù)入口文件index.js實(shí)現(xiàn)
const cloud = require('wx-server-sdk') cloud.init() // 下載云存儲圖片 // 講圖片上傳到小程序云開發(fā)的存儲中可以得到文件的fileID let downLoad = async(event, context) => { const res = await cloud.downloadFile({ fileID: 'cloud://example.png' }) const buffer = res.fileContent return buffer } // 把媒體文件上傳到微信服務(wù)器 let upload = async(Buffer) => { return await cloud.openapi.customerServiceMessage.uploadTempMedia({ type: 'image', media: { contentType: 'image/png', value: Buffer } }) } // 云函數(shù)入口函數(shù) exports.main = async (event, context) => { // 客服消息 if (event.MsgType == 'event') { const wxContext = cloud.getWXContext() let Buffer = await downLoad() let meida = await upload(Buffer) await cloud.openapi.customerServiceMessage.send({ "touser": wxContext.OPENID, "msgtype": "image", "image": { "media_id": meida.mediaId } }) return "success" } };
備注
customerServiceMessage.uploadTempMedia 的使用:
把媒體文件上傳到微信服務(wù)器。目前僅支持圖片。用于發(fā)送客服消息或被動回復(fù)用戶消息。
云調(diào)用是微信云開發(fā)提供的在云函數(shù)中調(diào)用微信開放接口的能力,需要在云函數(shù)中通過 wx-server-sdk 使用。
調(diào)用實(shí)例
// cloud = require('wx-server-sdk') // ... // 方法返回 Promise cloud.openapi.customerServiceMessage.uploadTempMedia({ type: 'image', media: { contentType: 'image/png', value: Buffer } })
cloud.downloadFile的使用
從云存儲空間下載文件 其中下載文件的返回類型為 ArrayBuffer
調(diào)用實(shí)例
wx.cloud.downloadFile({ fileID: 'a7xzcb' }).then(res => { console.log(res.data) }).catch(error => { // handle error })
到此這篇關(guān)于微信小程序?qū)崿F(xiàn)自動回復(fù)圖片消息的文章就介紹到這了,更多相關(guān)小程序自動回復(fù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
JS/jQuery判斷DOM節(jié)點(diǎn)是否存在的簡單方法
下面性價(jià)比就為大家?guī)硪黄狫S/jQuery判斷DOM節(jié)點(diǎn)是否存在的簡單方法。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起 小編過來看看吧2016-11-11prototype與jquery下Ajax實(shí)現(xiàn)的差別
Ajax技術(shù)在web中應(yīng)用的相當(dāng)廣泛,最近項(xiàng)目需要用到Ajax,由于主站所用的是Jquey,而某個(gè)欄目的開發(fā)用的是prototype,這樣一來就必須對JS代碼做調(diào)整了。2009-09-09JavaScript實(shí)現(xiàn)前端實(shí)時(shí)搜索功能
這篇文章主要為大家詳細(xì)介紹了JavaScript實(shí)現(xiàn)前端實(shí)時(shí)搜索功能 ,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04使用layui 渲染table數(shù)據(jù)表格的實(shí)例代碼
今天小編就為大家分享一篇使用layui 渲染table數(shù)據(jù)表格的實(shí)例代碼,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-08-08實(shí)例代碼詳解javascript實(shí)現(xiàn)窗口抖動及qq窗口抖動
這篇文章主要介紹了實(shí)例代碼詳解javascript實(shí)現(xiàn)窗口抖動及qq窗口抖動的相關(guān)資料,需要的朋友可以參考下2016-01-01