云開發(fā) 云調用快速入門

2020-07-22 15:32 更新

一、云調用基礎

在小程序開發(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ā)送訂閱消息,需要以下幾個步驟:

  • 在云函數(shù)中發(fā)送 https 請求,比如前面使用到的axios;

  • 調用小程序的 auth.getAccessToken 接口,傳遞grant_type(值為client_credential)、小程序appid和小程序唯一憑證密鑰secret來獲取小程序全局唯一后臺接口調用憑據(jù) AccessToken;access_token的有效期為2個小時,最好要自己存儲并定時刷新;

  • 調用小程序的 subscribeMessage.send 接口的https請求,來發(fā)送訂閱消息

而如果是使用云調用則無需換取access_token,只需要進行如下步驟即可,這些步驟也是通用于其他云調用接口:

  • 在config.json文件中配置相關云調用接口的權限;

  • 在云函數(shù)中無需發(fā)送https請求,直接使用cloud.openapi.subscribeMessage.send即可

也就是說云開發(fā)的云調用能力都是可以通過HTTPS調用的方式來實現(xiàn),但是使用云調用卻方便很多。這里需要強調的是,要使用云調用有兩個步驟,一是在云函數(shù)的配置文件里添加接口權限(方法見下,后面章節(jié)也會介紹),二是用云函數(shù)來處理。

二、云函數(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ù)組最后一項不能有逗號,,配置文件里不能有注釋等,千萬不要寫錯哦。

三、拓展能力快速入門

1、拓展能力的說明

拓展能力可以讓云開發(fā)更方便調用騰訊云的服務,比如圖像處理、短信驗證、數(shù)據(jù)庫,這些除了會使用到云開發(fā)的一些資源外(有免費額度),還會使用到騰訊云的一些服務,因此會產(chǎn)生一些費用(也就是和云開發(fā)分開計費),云開發(fā)資源的費用可以去云開發(fā)控制臺查看;而使用騰訊云服務產(chǎn)生的額外費用,可以去騰訊云費用中心查看。

拓展能力還可以更方便使用騰訊云的賬號體系實現(xiàn)跨云開發(fā)資源、跨多端來調用,以及云開發(fā)團隊為了方便開發(fā)者和運營人員使用而開發(fā)的CMS內容管理系統(tǒng)等等。和云調用一樣,拓展能力也會不斷增加一些更好用的功能。尤其是圖像處理能力、CMS內容管理,強烈建議把這兩個作為云開發(fā)的核心拓展安裝一下

2、拓展能力的安裝

要安裝拓展能力,我們需要登錄到騰訊云云開發(fā)的網(wǎng)頁控制臺,登錄時一定要選擇其他登錄方式-微信公眾號,然后掃碼授權選擇關聯(lián)的小程序賬戶進行登錄。選擇云開發(fā)環(huán)境之后,就可以點擊左側拓展能力的管理菜單,安裝拓展能力到指定的云開發(fā)環(huán)境。

拓展能力的安裝,其實就是根據(jù)不同的拓展能力所對應的服務執(zhí)行了以下一些步驟,可以讓開發(fā)者不必關注騰訊云一些過于復雜的概念或寫云函數(shù)等:

  • 在騰訊云訪問管理添加了一些CAM角色,以及為這些角色授權了一些策略;不同的拓展能力可能所需要的騰訊云的權限是一樣的,所以創(chuàng)建的角色以及角色所需要授權的策略也就相同,建議不要隨便刪除;

  • 在你指定的云開發(fā)環(huán)境里新建一些云函數(shù)(名稱為tcb_extension_ci或者以tcb開頭)、或者在云數(shù)據(jù)庫里創(chuàng)建一些集合(名稱也是以tcb開頭)等;由拓展能力創(chuàng)建的一些云函數(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)建的。

以上內容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號