LoginSignup
1
3

More than 5 years have passed since last update.

Dialogflow チュートリアルをActions on Google API v2 対応にする

Last updated at Posted at 2018-07-10

はじめに

軽くDialogflow を触ってみようとググったらGoogle 公式っぽいチュートリアルが見つかったので試してみたところ、Actions on Google でエラーになったので対応をメモしておきます。

試したチュートリアルはこちら。
Dialogflow で初めてのアプリをビルドする

※ 2018/07/10 時点の情報なので、チュートリアルページがアップデートされたらこの記事は不要になります。

Dialogflow とは

Google のチャットボットフレームワーク、でいいのかな。昔はApi.ai という名前でした。Actions on Google やSlack などと連携して音声/テキストのユーザーインタフェースを作れます。

Dialogflow

その他出てくるサービス名などはチュートリアルを実施する方なら説明不要と思うので、説明は省略。

チュートリアルでエラー発生

順調に進めていたんですが、「フルフィルメントを構築する」のところでエラーが発生しました(Actions on Google で返事が戻らなかった)。フルフィルメント(Fulfillment) はWebhook でFirebase のFunctions を呼ぶところですね。

Firebase コンソールでログを確認すると次の行がありました。

Error: Dialogflow v2 is not currently supported

何が問題だったのか

ログにあるとおり、Dialogflow API がv1 からv2 にバージョンアップしていました。
Dialogflow のページにアクセスすると上部に警告表示されていたので「へー」と思って即[DISMISS]してたんですが、チュートリアルも対応未済でした。

dialogflow-warn.png

v1 からv2 へのマイグレーションについては、警告内の「Learn how to migrate your V1 agents here」のリンク先でもいいんですが、Actions on Google のドキュメントの方がv1 とv2 の対応コードも記載されていて分かりやすいので、こちらを参照すると良いと思います。

Actions on Google Node.js Client Library Version 1 Migration Guide

API v2 への対応コード

ひとまずチュートリアルを動かしたところなのでv2 での変更点は本記事では解説しませんが、対応したチュートリアルのコードを載せておきます。

const functions = require('firebase-functions');
const { dialogflow } = require('actions-on-google');

// a. the action name from the make_name Dialogflow intent
const NAME_ACTION = 'make_name';

// b. the parameters that are parsed from the make_name intent 
const COLOR_ARGUMENT = 'color';
const NUMBER_ARGUMENT = 'number';

const app = dialogflow();

// c. The function that generates the silly name
app.intent(NAME_ACTION, (conv => {
  let number = conv.parameters[NUMBER_ARGUMENT];
  let color = conv.parameters[COLOR_ARGUMENT];
  conv.close('Alright, your silly name is ' +
             color + ' ' + number +
             '! I hope you like it. See you next time.');
}));

exports.sillyNameMaker = functions.https.onRequest(app);

まとめ

チュートリアル等の日本語訳はありがたいんですが、最新への追従が遅れていたりするので注意が必要ですね。(チュートリアル最終更新日が2018/3/20、API v2への移行が2018/4/16……つらい)(チュートリアルがアップデートされたらこの記事は不要になります)

1
3
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
1
3