目次

181026 ionic4でdialogflowV2にtryしてみる

2018年10月現在、Ionic4でDialogflowV1は、以下のソースコードで動く。

https://github.com/adash333/ionic4-dialogflowV1

Dialogflow V1が、2019年10月に終了してしまうというアナウンスが出てきたので、これを、V2に変更できないかtryしてみる。

Ionic4とDialogflow(V1)でチャットボットアプリの続き

開発環境

Windows 8.1 Pro

Dialogflow V2 APIのAuth(認証)のセットアップ

V1よりかなり難しそう。

In order to use the V2 API, you will need to create a new Service Account and obtain a private key associated with the Service Account. The key is downloaded as a JSON file upon creation of the Service Account.

らしい。

https://dialogflow.com/docs/reference/v2-auth-setup

https://qiita.com/tayack/items/6f0d76c980200be10c85
@tayack
2018年09月25日に投稿
DialogFlow v2 APIの使い方1 API実行に必要なアクセストークンをコマンドプロンプトで取得する方法

ところが、私の場合、Service Account のメールアドレスのリンクをクリックしても、リンク先で、

「このプロジェクトのサービス アカウントを表示する権限がありません。」

と表示されてしまい、先に進めない。

数時間後、なぜか、進めるようになった。

上の方の、「点3つ」マークをクリックして、「サービスアカウントを作成」をクリック

サービスアカウント名を適当に入力して、作成をクリック。

サービスアカウントをDialogFlow API管理者として作成。

続行 をクリック

キーの作成 をクリック

JSONが選択されていることを確認して、作成 をクリック

JSONファイルがダウンロードされるので、安全な場所(?)に保存。この保存した場所(例えば、C:/xxxxx.json)は控えておく。

DialogFlowをコマンドプロンプトから実行するためのSDKをインストール

https://cloud.google.com/sdk/docs/?hl=jaにアクセスし、SDKのインストーラーをダウンロードしてインストール

exeファイルがダウンロードされるので、ダブルクリックしてインストール。

ちょっと時間がかかる。

自動的にコマンドプロンプトが開くので、y + Enter

すると、自動的にChromeが開くので、アカウントを選択して、

下の方の、許可 をクリック。

自動的に開かれたコマンドプロンプトの画面で、以下を入力。

(コマンドプロンプトに、「ログインしました、アプリを選んでください」的なことが書かれているので、選択した。)

set GOOGLE_APPLICATION_CREDENTIALS=C:/(ダウンロードしたjsonファイルの場所)/(ダウンロードしたjsonファイル名).json
gcloud auth application-default print-access-token

これにより、表示されるアクセストークンを、テキストファイルに保存しておく。

しかし、この後、AngularやIonicへアクセストーくんを入力して、アプリを作成するやり方が分からない。。。

Dialogflow V2とIonic4を利用したアプリのソースコードは以下にあるのだが、、、

https://github.com/adash333/ionic4-dialogflowV1

とりあえず、上記コードのsrc/environments/environment.ts のtoken の中身だけ、上記アクセストークンに変更。
(Dialogflow V2では、まず、このアクセストークンを得るまでに、上記の通り、かなり苦労した。)

施行錯誤中。Dialogflowのdocumentを読んでみる

Dialogflow V1で動いたコードを変更して、V2で動くようにしたい。

以下のDialogflow V1用のコードを、Dialogflow V2用に変更したい。

とりあえず、https://api.dialogflow.com/v1/query?v=20150910 の /query を変更しなければと思い、公式docを検索。

https://dialogflow.com/docs/reference/v1-v2-migration-guide-api

https://dialogflow.com/docs/reference/v1-v2-migration-guide-api#query_to_detectintent

この後のリンク先が、v2beta1を見ればよいのか、v2を見ればよい二かさっぱりわからない。両方読んでも分からない。
https://dialogflow.com/docs/reference/api-v2/rest/v2beta1/projects.agent.sessions/detectIntent

https://dialogflow.com/docs/reference/api-v2/rest/#v2.projects

おそらく、以下のページが参考になりそうだが、、、

https://stackoverflow.com/questions/50545943/dialogflow-easy-way-for-authorization/51941682#51941682

https://medium.com/@tzahi/how-to-setup-dialogflow-v2-authentication-programmatically-with-node-js-b37fa4815d89

参考

https://qiita.com/tayack/items/6f0d76c980200be10c85

写経元サイト

http://www.blog.labouardy.com/chatbot-with-angular-5-dialogflow/