2018年10月現在、Ionic4でDialogflowV1は、以下のソースコードで動く。
https://github.com/adash333/ionic4-dialogflowV1
Dialogflow V1が、2019年10月に終了してしまうというアナウンスが出てきたので、これを、V2に変更できないかtryしてみる。
Windows 8.1 Pro
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)は控えておく。
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 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