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をどうやって引き継ぐか。。
データベースに入れて・・なんてのもめんどいし。。さて。。
商用キーも取得したので、今の状態はこちらから確認いただけます!!