※api.aiは、2017年10月にDialogflowへと名称変更されました。
「Integration」を使えばさまざまなツールと連携できるapi.aiですが、よくこのブログで書いている「形態素解析した日本語をapi.aiに投げる」には、api.aiをAPIとして利用する必要があります。そのやり方について。
リファレンス
やり方
api.aiにPOSTするURLは、下記になります。
これに、下記パラメータを必須としてPOSTすればOK。
- v:APIのバージョン。現在は”20150910″。
- query:ユーザーの投稿内容。僕は形態素解析したものを渡してます。
- sessinId:エージェントごとに固有の36桁の番号。api.aiログイン後、画面右の「Try it now」から応答確認した時に確認できる「SHOW JSON」から確認できます。
- lang:言語。英語版ボットでも、日本語を渡す時に”ja”と指定してもOKでした。
- api
全てURLにパラメータとして渡しても良いようですが、普段は、vのみURLのパラメータとして渡し、それ以外はJSON形式にしてヘッダー情報と併せてURLにPOSTしてます。何となく管理がラクなので。
ソースコードはこちら。
$apiToken = 'エージェントのClient access token';$apiUrl = 'https://api.api.ai/v1/query?v=v=20150910';$reqBody = ['query' => 'ユーザーの投稿内容','sessionId' => 'セッションID','lang' => 'ja',];$headers = ['Content-Type: application/json; charset=UTF-8','Authorization: Bearer' . $apiToken];$options = ['http'=> ['method' => 'POST','header' => implode("\r\n", $headers),'content' => json_encode($reqBody)]];$stream = stream_context_create($options);$resApi = file_get_contents($apiUrl, false, $stream);
$resApiをjsondecodeして、応答内容やActionなど必要な情報を抜き出せばOKです。APIとして活用できると、いろいろできることも増えるので便利ですね。