2018/5/22

取得DialogFlow v2 REST API的Authorization Token

自API.AI被Google買走變成DialogFlow後,有些API的資料格式變了,那這裡要寫的就是如何取得v2 REST API的Authorization Token
之前v1的REST API要取得Authorization Token非常容易,只要去Agent的設置那裡,Client access token就是Token,然後照下圖的格式填Authorization:
就可以了

但現在v2不一樣,變得很麻煩。

那接下來開始設置並取得Authorization Token
前置作業:

  • 那如果要用v2的API的話記得要去Agent的設置頁面選擇v2的API版本


那官方設置Authorization的連結在此https://dialogflow.com/docs/reference/v2-auth-setup
大致的步驟是:

  1. 於Google Cloud Platform創造新的服務帳戶,下載取得金鑰檔案
  2. 下載並安裝Google Cloud SDK,並給它金鑰檔案以便產生我們最後要的Token
那其實兩步都可看連結中的文件照做即可,這裡只大概說明一下特別的地方

在步驟1創造完新的服務帳戶,記得勾選產生一個新的private key,格式選JSON,完成就會下載一個json檔案,這檔案最好好好保留好!不要給別人。

再來就是安裝Google Cloud SDK,過程可參考官方文件https://cloud.google.com/sdk/docs/
然後把下載的PACKAGE直接解壓縮即可,第4點如下圖可略過


直接下第5點的指令即可,指令就是要照他那樣下,我本來是直接到bin底下,執行$ gcloud init結果不行,我想應該是沒把SDK安裝於整個系統環境變數中
下init指令完會跳出一個網頁,如下圖:
表示成功

接下來就可以輸入以下指令,它就會使用你的key的json檔案來啟動服務帳戶的credentials
$ ./google-cloud-sdk/bin/gcloud auth activate-service-account --key-file=/Users/xanxus/Downloads/你剛剛下載的key檔案.json
它會回應類似以下的訊息:
Activated service account credentials for: [dialogflow-****@***.iam.gserviceaccount.com]

最後的步驟就是取得Token,使用以下指令來取得最終的Token
$ ./google-cloud-sdk/bin/gcloud auth print-access-token
那通常Token都是ya開頭,至少我目前看到的都是這樣。

最後你就可以用這組Token來送請求了,一樣在Header於Authorization欄位輸入Bearer ya.....

沒有留言:

張貼留言