Posted at

api.aiのwebhookを受けるサーバでパラメータを受け取る

More than 1 year has passed since last update.

api.aiではfulfillmentの設定で、webhookで呼び出すエンドポイントを指定できる。

Intent内の設定でユーザの入力に対応するパラメータを定義して、webhook時にリクエストボディに含めることができる。

api.aiからのリクエストを受けるサーバではどのようにしてパラメータを取得するかメモ。今回はデモアプリ用にherokuでnode.js/expressフレームワークのサーバを立てて検証した。


パラメータの抽出

req.body.result.parametersでパラメータオブジェクトを取得できる。

レスポンスはパラメータオブジェクトを文字列にして返すだけの例。

router.all('/', function(req, res, next) {

console.log('[REQUEST]', req.body.result.parameters);
res.set('Content-Type', 'application/json');
res.json({
displayText: JSON.stringify(req.body.result.parameters),
speech: JSON.stringify(req.body.result.parameters),
});
});


ひとくちメモ


  • herokuのログを見る方法 heroku logs -t

  • レスポンスボディのspeechに設定した値がwebデモなどで確認できるテキストになる