FacebookメッセンジャーのBotとDocomo雑談対話APIを繋いでみました
FacebookメッセンジャーのAPIが「Messenger Platform」公開されています。
[Facebook API メッセンジャー]で検索したらいろんな記事が出ています(^^)
今回、これを使ってBotを作ってみました。

ここで問題。。。
何を返答しようかなぁ(^^;
で、調べていたらDocomoさんに「Developer support」があって、そこから「雑談対話API」ってのが出されていることがわかりました。
今回はこれを使って返答してくれるBotを作ってみました。
※FacebookメッセンジャーBotは動いていることが前提です(^^;
目次
準備。。
1)Developer supportに登録します。
2)APIを申請します。
3)開発用API Keyを取得します。
開発環境準備
※開発について「Facebook Messenger PlatformとDocomoの雑談対話APIで雑談BOTを作って公開する 第一回」を参考にしています。
サーバーはCentOS6.5を利用しています。
1)Composerを使ってライブラリをインストールします。
$ composer require jp3cki/docomo-dialogue
 Using version ^1.2 for jp3cki/docomo-dialogue
 ./composer.json has been created
 Loading composer repositories with package information
 Updating dependencies (including require-dev)
 Your requirements could not be resolved to an installable set of packages.
Problem 1
 – jp3cki/docomo-dialogue v1.2.2 requires ext-intl * -> the requested PHP extension intl is missing from your system.
 – jp3cki/docomo-dialogue 1.2.1 requires ext-intl * -> the requested PHP extension intl is missing from your system.
 – jp3cki/docomo-dialogue 1.2.0 requires ext-intl * -> the requested PHP extension intl is missing from your system.
 – Installation request for jp3cki/docomo-dialogue ^1.2 -> satisfiable by jp3cki/docomo-dialogue[1.2.0, 1.2.1, v1.2.2].
To enable extensions, verify that they are enabled in your .ini files:
 – /etc/php.ini
 – /etc/php.d/curl.ini
 – /etc/php.d/dom.ini
 – /etc/php.d/fileinfo.ini
 – /etc/php.d/gd.ini
 – /etc/php.d/json.ini
 – /etc/php.d/mbstring.ini
 – /etc/php.d/mysqlnd.ini
 – /etc/php.d/mysqlnd_mysql.ini
 – /etc/php.d/mysqlnd_mysqli.ini
 – /etc/php.d/pdo.ini
 – /etc/php.d/pdo_mysqlnd.ini
 – /etc/php.d/pdo_sqlite.ini
 – /etc/php.d/phar.ini
 – /etc/php.d/sqlite3.ini
 – /etc/php.d/wddx.ini
 – /etc/php.d/xmlreader.ini
 – /etc/php.d/xmlwriter.ini
 – /etc/php.d/xsl.ini
 – /etc/php.d/zip.ini
 You can also run php --ini inside terminal to see which files are used by PHP in CLI mode.
Installation failed, deleting ./composer.json.
ext-intlがないですとのエラーが。。
$ yum list | grep intl
 php-intl.x86_64 5.3.3-48.el6_8 updates
あるじゃないですか。
てなことでインストール
# yum install –enablerepo=remi php-intl
 ========================================================
Package Arch Version Repository Size
 ========================================================
Installing:
 php-intl x86_64 5.4.45-13.el6.remi remi 136 k
 Installing for dependencies:
 libicu-last x86_64 50.1.2-11.el6.remi remi 7.3 M
 Updating for dependencies:
 php x86_64 5.4.45-13.el6.remi remi 2.8 M
 php-cli x86_64 5.4.45-13.el6.remi remi 4.1 M
 php-common x86_64 5.4.45-13.el6.remi remi 968 k
 php-devel x86_64 5.4.45-13.el6.remi remi 1.2 M
 php-gd x86_64 5.4.45-13.el6.remi remi 152 k
 php-mbstring x86_64 5.4.45-13.el6.remi remi 954 k
 php-mysqlnd x86_64 5.4.45-13.el6.remi remi 3.7 M
 php-pdo x86_64 5.4.45-13.el6.remi remi 129 k
 php-xml x86_64 5.4.45-13.el6.remi remi 181 k
Transaction Summary
 ======================================================
$ php -i | grep intl
 /etc/php.d/intl.ini,
 intl
 intl.default_locale => no value => no value
 intl.error_level => 0 => 0
サーバーを再起動します。
# /etc/rc.d/init.d/httpd restart
再度インストール
$ composer require jp3cki/docomo-dialogue
 PHP Warning: Module ‘intl’ already loaded in Unknown on line 0
 Using version ^1.2 for jp3cki/docomo-dialogue
 ./composer.json has been created
 Loading composer repositories with package information
 Updating dependencies (including require-dev)
 Package operations: 2 installs, 0 updates, 0 removals
 – Installing php-curl-class/php-curl-class (6.0.0) Downloading: 100%
 – Installing jp3cki/docomo-dialogue (v1.2.2) Downloading: 100%
 Writing lock file
 Generating autoload files
手なことで無事にツールさんをインストールできました。
サンプルを動かしてみましょう!!
autolod.phpの場所を修正してから、サンプルを起動します。
例えばこんな感じ:require_once(__DIR__ . ‘/../../vendor/autoload.php’);
$ php sample/sample.php
PHP Warning: Module ‘intl’ already loaded in Unknown on line 0
対話を開始します(空行の入力で終了します):
> こんばんは!
< 久しぶり
> お暇ですか?
< うん
> ご飯でも行きます??
< 最高のご飯のおかずは、空腹だよね。
> あらら、それはきびしいなぁ。。
< おかずは和風です
無事に動いて切れました!!
FBメッセンジャーBotに繋いでみましょう!
参考サイトを見ていただければ、即分かります(^^;
ただひとつ・・・・
会話継続のためのcontextとmodeをどうやって引き継ぐか。。
データベースに入れて・・なんてのもめんどいし。。さて。。
商用キーも取得したので、今の状態はこちらから確認いただけます!!
