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をどうやって引き継ぐか。。

データベースに入れて・・なんてのもめんどいし。。さて。。

商用キーも取得したので、今の状態はこちらから確認いただけます!!

Follow me!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA