W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
版本要求:wx-server-sdk >= 0.4.0、開發(fā)者工具 >= 1.02.1904090 (RC版下載)
云調(diào)用是云開發(fā)提供的基于云函數(shù)使用小程序開放接口的能力,目前覆蓋以下使用場(chǎng)景:
云調(diào)用需要在云函數(shù)中通過(guò) wx-server-sdk 使用。在云函數(shù)中使用云調(diào)用調(diào)用服務(wù)端接口無(wú)需換取 access_token,只要是在從小程序端觸發(fā)的云函數(shù)中發(fā)起的云調(diào)用都經(jīng)過(guò)微信自動(dòng)鑒權(quán),可以在登記權(quán)限后直接調(diào)用如發(fā)送模板消息等開放接口。使用方式如下:
在服務(wù)端接口列表中羅列了所有的服務(wù)端接口,如果接口支持云調(diào)用,則在接口名稱旁會(huì)帶有 云調(diào)用 的標(biāo)簽。同時(shí),在每一個(gè)服務(wù)端接口文檔中,如果接口支持云調(diào)用,也會(huì)有專門的支持說(shuō)明以及相應(yīng)的使用文檔。
在支持云調(diào)用的接口文檔中,會(huì)分別列出 HTTPS 調(diào)用的文檔及云調(diào)用的文檔,云調(diào)用文檔同 HTTPS 調(diào)用文檔一樣包含請(qǐng)求參數(shù)、返回值及示例。
接著,需要配置云調(diào)用權(quán)限,每個(gè)云函數(shù)需要聲明其會(huì)使用到的接口,否則無(wú)法調(diào)用,聲明的方法是在云函數(shù)目錄下的 config.json(如無(wú)需新建)配置文件的 permissions.openapi 字段中增加要調(diào)用的接口名,permissions.openapi 是個(gè)字符串?dāng)?shù)組字段,值必須為所需調(diào)用的服務(wù)端接口名稱。在每次使用微信開發(fā)者工具上傳云函數(shù)時(shí)均會(huì)根據(jù)配置更新權(quán)限,該配置有10分鐘的緩存,如果更新后提示沒(méi)有權(quán)限,稍等10分鐘后再試。以下是一個(gè)示例的聲明了使用發(fā)送模板消息接口的配置文件:
{
"permissions": {
"openapi": [
"templateMessage.send"
]
}
}
首先云函數(shù)中需要使用版本號(hào)至少 0.4.0 的 wx-server-sdk,建議 wx-server-sdk 始終保持最新,保證云函數(shù)目錄下的 package.json 的 wx-server-sdk 字段為 latest,如本地安裝依賴,請(qǐng)執(zhí)行 npm install --save wx-server-sdk@latest。
接下來(lái),可在云函數(shù)中使用云調(diào)用 API 了。云調(diào)用 API 均掛載在 wx-server-sdk 模塊的 openapi 對(duì)象下,各個(gè)開放接口類別在 openapi 對(duì)象下設(shè)二級(jí)命名空間對(duì)象(如模板消息接口的方法均在 openapi.templateMessage 下),該對(duì)象下掛載該類別下的所有開放方法(比如模板消息的發(fā)送接口是 openapi.templateMessage.send)。各接口從屬的類別名稱和方法名稱可以通過(guò)接口名稱查看,接口名稱均以 <類別>.<方法> 命名,如發(fā)送模板消息的接口名稱是 templateMessage.send。下面是一個(gè)給自己發(fā)送模板消息的示例:
如需可直接運(yùn)行的示例,請(qǐng)?jiān)?IDE 中創(chuàng)建一個(gè)云開發(fā)快速啟動(dòng)模板的項(xiàng)目,其中有包含發(fā)送模板消息的云調(diào)用的示例
const cloud = require('wx-server-sdk')
cloud.init({
env: cloud.DYNAMIC_CURRENT_ENV
})
exports.main = async (event, context) => {
try {
const result = await cloud.openapi.templateMessage.send({
touser: cloud.getWXContext().OPENID, // 通過(guò) getWXContext 獲取 OPENID
page: 'index',
data: {
keyword1: {
value: '339208499'
},
keyword2: {
value: '2015年01月05日 12:30'
},
keyword3: {
value: '騰訊微信總部'
},
keyword4: {
value: '廣州市海珠區(qū)新港中路397號(hào)'
}
},
templateId: 'TEMPLATE_ID',
formId: 'FORMID',
emphasisKeyword: 'keyword1.DATA'
})
// result 結(jié)構(gòu)
// { errCode: 0, errMsg: 'openapi.templateMessage.send:ok' }
return result
} catch (err) {
// 錯(cuò)誤處理
// err.errCode !== 0
throw err
}
}
對(duì)返回敏感開放數(shù)據(jù)的小程序端接口,從基礎(chǔ)庫(kù) 2.7.0 起,如果小程序已開通云開發(fā),則可在開放數(shù)據(jù)接口的返回值中獲取到唯一對(duì)應(yīng)敏感開放數(shù)據(jù)的 cloudID,通過(guò)云調(diào)用可以直接獲取到開放數(shù)據(jù),具體使用方法見 云調(diào)用直接獲取開放數(shù)據(jù)。
云開發(fā)也支持通過(guò)云函數(shù)接收小程序消息推送(如接收到客服消息時(shí)觸發(fā)云函數(shù)),具體接入方式見消息推送。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: