4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

[Node.js]DialogflowのIntentをAPIで取得する

Last updated at Posted at 2019-06-10

DialogflowのIntentのRESTで実装しようとしたとき、
webhook接続の解説記事ばかりで、API接続の解説記事が少なかったので、備忘録として残します。
#モジュールのインストール
APIの接続にはモジュール版のdialogflowを使うのでnpmでインストールします。

npm install --save dialogflow

#実装
実装する際のソースコードサンプルです。
##接続部分
Dialogflowの接続情報を設定してSessionを作成します。

const dialogflow = require('dialogflow');

module.exports = class DialoglowAPI {
    constructor(){
        // Dialogflowの接続情報を設定
        let client_option = {
            project_id: prject_id, // DialogflowのProject ID
        }
        client_option.credentials = {
            client_email: client_email // DialogflowのService Account
            private_key: private_key // GCPで生成したprivate key
        }
        
        this.sessionClient = new dialogflow.SessionsClient(client_option);
        this.sessionPath = this.sessionClient.sessionPath(prject_id, project_id);
    }
}

###Dialogflowgへの接続情報
project_id、client_emailはDialogflow Consoleから歯車マーク押した先に。
private_keyはService AccountからGCPに飛んで、そこから生成します。
※接続情報の取得に関しては、いっぱい記事が転がっているので詳細は割愛します。

###注意
client_emailとprivate_keyは、xxxx.credentialsの中に入れてあげないとエラーとなるので注意しましょう。

##Intentの取得

    async get_intent() {
        // requestを作成
        const request = {
            session: this.sessionPath,
            queryInput: {
                text: {
                    text: "Intentを特定する為の文言",
                    languageCode: "ja",
                },
            },
        };
        // 呼び出し
        return await this.sessionClient.detectIntent(request);
    }

responseのデータ形式はこちらに記載されています

##まとめ
DialogflowとLINE等のメッセンジャーを直接Webhookで繋げるのは簡単ですが、
複雑な実装を行う場合は、サーバーを経由する機会も多いと思います。
APIでの接続は小さく実装できるので、Nluを機能の一部で実装したい等の場合はとても便利に使うことができると思います。

4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?