====== 181026 ionic4でdialogflowV2にtryしてみる====== 2018年10月現在、Ionic4でDialogflowV1は、以下のソースコードで動く。 https://github.com/adash333/ionic4-dialogflowV1 Dialogflow V1が、2019年10月に終了してしまうというアナウンスが出てきたので、これを、V2に変更できないかtryしてみる。 [[:ionic4とdialogflow_v1_でチャットボットアプリ|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実行に必要なアクセストークンをコマンドプロンプトで取得する方法 {{:pasted:20181026-174344.png}} ところが、私の場合、Service Account のメールアドレスのリンクをクリックしても、リンク先で、 「このプロジェクトのサービス アカウントを表示する権限がありません。」 と表示されてしまい、先に進めない。 数時間後、なぜか、進めるようになった。 {{:pasted:20181026-174500.png}} 上の方の、「点3つ」マークをクリックして、「サービスアカウントを作成」をクリック {{:z_blog:2018:pasted:20181028-215116.png}} サービスアカウント名を適当に入力して、作成をクリック。 {{:z_blog:2018:pasted:20181028-215337.png}} サービスアカウントをDialogFlow API管理者として作成。 {{:z_blog:2018:pasted:20181028-215527.png}} 続行 をクリック {{:z_blog:2018:pasted:20181028-215618.png}} キーの作成 をクリック {{:z_blog:2018:pasted:20181028-215720.png}} JSONが選択されていることを確認して、作成 をクリック {{:z_blog:2018:pasted:20181028-215838.png}} JSONファイルがダウンロードされるので、安全な場所(?)に保存。この保存した場所(例えば、C:/xxxxx.json)は控えておく。 {{:z_blog:2018:pasted:20181028-215953.png}} ===== DialogFlowをコマンドプロンプトから実行するためのSDKをインストール ===== https://cloud.google.com/sdk/docs/?hl=jaにアクセスし、SDKのインストーラーをダウンロードしてインストール {{:z_blog:2018:pasted:20181028-220620.png}} exeファイルがダウンロードされるので、ダブルクリックしてインストール。 {{:z_blog:2018:pasted:20181028-220712.png}} ちょっと時間がかかる。 {{:z_blog:2018:pasted:20181028-220759.png}} {{:z_blog:2018:pasted:20181028-223934.png}} 自動的にコマンドプロンプトが開くので、y + Enter {{:z_blog:2018:pasted:20181028-224126.png}} すると、自動的にChromeが開くので、アカウントを選択して、 {{:z_blog:2018:pasted:20181028-224229.png}} 下の方の、許可 をクリック。 {{:z_blog:2018:pasted:20181028-224316.png}} {{:z_blog:2018:pasted:20181028-224353.png}} 自動的に開かれたコマンドプロンプトの画面で、以下を入力。 (コマンドプロンプトに、「ログインしました、アプリを選んでください」的なことが書かれているので、選択した。) set GOOGLE_APPLICATION_CREDENTIALS=C:/(ダウンロードしたjsonファイルの場所)/(ダウンロードしたjsonファイル名).json gcloud auth application-default print-access-token これにより、表示されるアクセストークンを、テキストファイルに保存しておく。 {{:z_blog:2018:pasted:20181028-231725.png}} しかし、この後、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用に変更したい。 {{:z_blog:2018:pasted:20181029-001445.png}} とりあえず、https://api.dialogflow.com/v1/query?v=20150910 の /query を変更しなければと思い、公式docを検索。 https://dialogflow.com/docs/reference/v1-v2-migration-guide-api {{:z_blog:2018:pasted:20181029-001530.png}} https://dialogflow.com/docs/reference/v1-v2-migration-guide-api#query_to_detectintent {{:z_blog:2018:pasted:20181029-001701.png}} この後のリンク先が、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 {{:z_blog:2018:pasted:20181028-214912.png}} ===== 写経元サイト ===== http://www.blog.labouardy.com/chatbot-with-angular-5-dialogflow/ {{:z_blog:2018:pasted:20181026-174756.png}}