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