在小程序開發(fā)技術(shù)文檔的服務(wù)端接口列表中羅列了所有的服務(wù)端接口,如果接口支持云調(diào)用,則在接口名稱旁會(huì)帶有云調(diào)用
的標(biāo)簽。在支持云調(diào)用的接口文檔中,會(huì)分別列出 HTTPS 調(diào)用的文檔及云調(diào)用的文檔。
也就是說(shuō),服務(wù)端接口的開發(fā)方式(方法)有兩種,一種是HTTPS調(diào)用,一種是云調(diào)用,HTTPS調(diào)用通用于所有的開發(fā)語(yǔ)言,是一種比較傳統(tǒng)的開發(fā)方式;而云調(diào)用則是云開發(fā)提供的更加方便的開發(fā)方式。值得一提的是,我們也可以使用云函數(shù)來(lái)調(diào)用HTTPS接口,比如使用axios,方法在HTTP處理章節(jié)有介紹。
云調(diào)用是云開發(fā)提供的基于云函數(shù)使用小程序開放接口的能力,支持在云函數(shù)調(diào)用服務(wù)端開放接口。在云函數(shù)中使用云調(diào)用調(diào)用服務(wù)端接口無(wú)需換取access_token,只要是在從小程序端觸發(fā)的云函數(shù)中發(fā)起的云調(diào)用都會(huì)經(jīng)過(guò)微信自動(dòng)鑒權(quán),可以在登記權(quán)限后直接調(diào)用如發(fā)送訂閱消息、客服消息等開放接口。
這里需要注意的是,當(dāng)我們?cè)谡{(diào)試云調(diào)用的云函數(shù)時(shí),直接使用云端測(cè)試會(huì)出現(xiàn)報(bào)錯(cuò),這是因?yàn)樵贫藴y(cè)試是無(wú)法獲取用戶登錄態(tài)信息的,所以建議在小程序端觸發(fā)來(lái)調(diào)試。
云調(diào)用大大方便了我們使用小程序開放能力的接口,以訂閱消息為例,在沒有云調(diào)用之前,我們想要發(fā)送訂閱消息,需要以下幾個(gè)步驟:
而如果是使用云調(diào)用則無(wú)需換取access_token,只需要進(jìn)行如下步驟即可,這些步驟也是通用于其他云調(diào)用接口:
也就是說(shuō)云開發(fā)的云調(diào)用能力都是可以通過(guò)HTTPS調(diào)用的方式來(lái)實(shí)現(xiàn),但是使用云調(diào)用卻方便很多。這里需要強(qiáng)調(diào)的是,要使用云調(diào)用有兩個(gè)步驟,一是在云函數(shù)的配置文件里添加接口權(quán)限(方法見下,后面章節(jié)也會(huì)介紹),二是用云函數(shù)來(lái)處理。
使用云調(diào)用需要配置云調(diào)用權(quán)限,每個(gè)云函數(shù)需要聲明其會(huì)使用到的接口,否則無(wú)法調(diào)用,聲明的方法是在云函數(shù)目錄下的config.json配置文件的permissions.openapi
字段中增加要調(diào)用的接口名(對(duì)應(yīng)的接口名,可以去云調(diào)用的相關(guān)接口的文檔里查找),permissions.openapi
是個(gè)字符串?dāng)?shù)組字段,值必須為所需調(diào)用的服務(wù)端接口名稱。
在每次使用微信開發(fā)者工具上傳云函數(shù)時(shí)均會(huì)根據(jù)配置更新權(quán)限,該配置有10分鐘左右的緩存,如果更新后提示沒有權(quán)限,稍等10分鐘后再試。
如果你是在微信開發(fā)者工具通過(guò)“新建Nodejs云函數(shù)”創(chuàng)建的云函數(shù),云函數(shù)的目錄里就都會(huì)有config.json的配置文件,目錄結(jié)構(gòu)如下,如果你是通過(guò)其他方式創(chuàng)建的云函數(shù),也建議如下3個(gè)文件都要有(沒有的話,可以自己copy來(lái)創(chuàng)建):
test //云函數(shù)目錄
├── config.json //權(quán)限和定時(shí)觸發(fā)器等的配置文件
├── index.js //云函數(shù)
├── package.json //云函數(shù)的依賴管理
config.json文件還可以用來(lái)配置定時(shí)觸發(fā)器,比如該云函數(shù)需要使用到訂閱消息和內(nèi)容安全兩個(gè)權(quán)限,以及每5秒鐘定時(shí)發(fā)送一次訂閱消息,config.json的寫法如下:
{
"permissions": {
"openapi": [
"subscribeMessage.send",
"security.imgSecCheck"
]
},
"triggers": [
{
"name": "tomylove",
"type": "timer",
"config": "*/5 * * * * * *"
}
]
}
config.json配置文件的格式和前面介紹的json文件配置的格式一樣,比如數(shù)組最后一項(xiàng)不能有逗號(hào),
,配置文件里不能有注釋等,千萬(wàn)不要寫錯(cuò)哦。
拓展能力可以讓云開發(fā)更方便調(diào)用騰訊云的服務(wù),比如圖像處理、短信驗(yàn)證、數(shù)據(jù)庫(kù),這些除了會(huì)使用到云開發(fā)的一些資源外(有免費(fèi)額度),還會(huì)使用到騰訊云的一些服務(wù),因此會(huì)產(chǎn)生一些費(fèi)用(也就是和云開發(fā)分開計(jì)費(fèi)),云開發(fā)資源的費(fèi)用可以去云開發(fā)控制臺(tái)查看;而使用騰訊云服務(wù)產(chǎn)生的額外費(fèi)用,可以去騰訊云費(fèi)用中心查看。
拓展能力還可以更方便使用騰訊云的賬號(hào)體系實(shí)現(xiàn)跨云開發(fā)資源、跨多端來(lái)調(diào)用,以及云開發(fā)團(tuán)隊(duì)為了方便開發(fā)者和運(yùn)營(yíng)人員使用而開發(fā)的CMS內(nèi)容管理系統(tǒng)等等。和云調(diào)用一樣,拓展能力也會(huì)不斷增加一些更好用的功能。尤其是圖像處理能力、CMS內(nèi)容管理,強(qiáng)烈建議把這兩個(gè)作為云開發(fā)的核心拓展安裝一下。
要安裝拓展能力,我們需要登錄到騰訊云云開發(fā)的網(wǎng)頁(yè)控制臺(tái),登錄時(shí)一定要選擇其他登錄方式-微信公眾號(hào),然后掃碼授權(quán)選擇關(guān)聯(lián)的小程序賬戶進(jìn)行登錄。選擇云開發(fā)環(huán)境之后,就可以點(diǎn)擊左側(cè)拓展能力的管理菜單,安裝拓展能力到指定的云開發(fā)環(huán)境。
拓展能力的安裝,其實(shí)就是根據(jù)不同的拓展能力所對(duì)應(yīng)的服務(wù)執(zhí)行了以下一些步驟,可以讓開發(fā)者不必關(guān)注騰訊云一些過(guò)于復(fù)雜的概念或?qū)懺坪瘮?shù)等:
拓展能力可以根據(jù)需要安裝和卸載,即使安裝了只會(huì)占據(jù)云函數(shù)和集合的名額,不使用是不會(huì)產(chǎn)生費(fèi)用的;卸載時(shí)也是可以刪除這些角色和權(quán)限策略的(強(qiáng)烈建議不要?jiǎng)h除角色和權(quán)限策略)以及相應(yīng)的云函數(shù)和數(shù)據(jù)庫(kù)。卸載了還可以再次安裝。
注意,拓展能力的角色和權(quán)限策略是適用于所有云開發(fā)環(huán)境,也就是你在一個(gè)云開發(fā)環(huán)境安裝拓展能力時(shí)創(chuàng)建了角色和指定了權(quán)限策略,那在其他云開發(fā)環(huán)境就不需要再配置了;而云函數(shù)和云數(shù)據(jù)庫(kù)里的集合,還是需要你通過(guò)安裝來(lái)創(chuàng)建或者自己創(chuàng)建的。
更多建議: