iT邦幫忙

2021 iThome 鐵人賽

DAY 29
0
Software Development

Laravel 新手初見 API系列 第 29

Day29-介接 API(四)Laravel 實作 Dialogflow ES 之 API interactions

大家好~
今天來實作下圖架構的簡單版吧!

申請服務帳戶


選擇一個 Dialogflow 的 Agent,
先點擊齒輪,
再點擊 Project ID
會導向到 Google Cloud Platform

點擊建立憑證。
建立一個服務帳戶。

輸入服務帳戶名稱。

選擇角色 Dialogflow 服務代理人

點擊完成建立服務帳戶。

建立金鑰

點擊剛剛建立的服務帳號。

  1. 點擊金鑰
  2. 點擊新增金鑰
  3. 點擊建立新的金鑰

選擇 JSON
點擊建立下載金鑰。

實作

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Log;
use Google\Cloud\Dialogflow\V2\TextInput;
use Google\Cloud\Dialogflow\V2\QueryInput;
use Google\Cloud\Dialogflow\V2\SessionsClient;
public function test(Request $request)
{
    $textInput = new TextInput();
    $textInput->setLanguageCode('zh-TW')
        ->setText($request->text);

    $queryInput = new QueryInput();
    $queryInput->setText($textInput);

    $sessionsClient = new SessionsClient([
        'credentials' => env('GOOGLE_APPLICATION_CREDENTIALS')
    ]);

    $session = $sessionsClient::sessionName(
        env('DIALOGFLOW_PROJECT_ID'), uniqid()
    );

    $detectIntentResponse = $sessionsClient->detectIntent($session, $queryInput);
    $queryResult = $detectIntentResponse->getQueryResult();
    $fulfillmentText = $queryResult->getFulfillmentText();
    return $fulfillmentText;
}

env 介紹:

  • env('GOOGLE_APPLICATION_CREDENTIALS')
    • 服務帳戶的 JSON 金鑰檔案路徑。
  • env('DIALOGFLOW_PROJECT_ID')
    • Dialogflow 的 Project ID

測試環節

就用上次 Day27 做的 Intent 做測試吧!

#1

#2

#3

成功~

那麼今天先這樣啦~
若文章有任何問題,
還請大家不吝賜教!
大家明天見!

參考資料:


上一篇
Day28-介接 API(番外篇 III)Dialogflow ES 之 Fulfillment 與 Events
下一篇
Day30-用 LINEBot、Google Calendar、Dialogflow ES 做個開會機器人當結尾!
系列文
Laravel 新手初見 API30

尚未有邦友留言

立即登入留言