(著者:サイボウズ 西尾 定也)
はじめに
今回はM-SOLUTIONS株式会社とサイボウズ株式会社で共同開発したkintone POST ボックスについてご紹介します。このツールをPepperのプログラム開発に利用することでPepperからkintoneへ簡単にデータをアップロードすることが可能になります。
例えば、店頭販売のアンケートをPepperからkintoneへアップロードし、アンケートの傾向をkintoneで分析するような利用方法に用いることができます。また、サンプルを発展させることでkintoneに登録されたセミナー情報を来場者に案内するなど、Pepperに受付を任せるような用途も考えられます。
Pepperとは
ソフトバンクロボティクス株式会社ならびにアルデバラン社が開発した、世界初の感情認識パーソナルロボット「Pepper(ペッパー)」は、会話を交わすなど人とのコミュニケーションを得意としたロボットです。Pepperのプログラム開発はChoregraphe(コレグラフ)というソフトウェアによって行います。
Choregrapheでは「ボックス」と呼ばれるパーツを用いたシンプルなUIでPepperの動作をプログラムすることができます。
kintone POST ボックスとは
kintone POST ボックスはPepperからkintoneへデータをアップロードするためのボックスです。
Choregrapheにkintone POST ボックスを読み込み、画面からシンプルな設定をするだけでkintoneへデータを連携することができます。
kintone POST ボックスを利用したサンプルの作成
今回は、Pepperに「はい」、もしくは「いいえ」と話しかけると、kintoneにデータをアップロードするようなサンプルを作成します。
Pepperの実機がない場合でも、Choregrapheの「ダイアログ」機能を利用してPepperに話しかけることができます。それでは以下の手順に沿ってサンプルを作成してみましょう。
事前準備
kintone
- 30日間無料お試し環境、または開発者ライセンスからkintoneの試用環境を申し込みます
- アプリの作成で「はじめから作成」を選択します
- フォームの編集で以下のようにフィールドを設定します
フィールドタイプ フィールド名 フィールドコード 文字列1行 回答 answer 数値 点数 point - 詳細設定の「APIトークン」からレコード追加権限を付与したAPIトークンを発行します
- 「設定完了」ボタンをクリックしアプリの作成を完了します
Pepper
Choregrapheでの設定
事前準備ができたらChoregrapheで設定を行っていきます。今回はkintone POST ボックス以外の項目は予め設定してあるプロジェクトファイルを利用します。
- ページ下部の添付ファイル(kintone-post.zip)をダウンロードし、任意のディレクトリに解凍します
- Choregrapheを起動します
- 画面左上の「ファイル」>「プロジェクトを開く」から、解凍したディレクトリ内に存在するkintone-post.pmlを開きます
- kintone POST ボックスのスパナアイコンをクリックし、kintoneの環境に合わせて設定を行います(2つkintone POST ボックスがありますが同様に設定してください)
変数 内容 sub-domain kintone環境のサブドメイン
例) kintoneのURLが https://example.cybozu.com/k/ の場合、example を入力します
app-no 連携するアプリのID
例) アプリのURLが https://example.cybozu.com/k/100 の場合、100 を入力します
API-Token 連携するアプリのAPIトークン
事前準備で発行したAPIトークンを入力します
例) F4RF7vL5fqWJXeS7GNmm0wHZic5zQiXCZboxf8Fyfield-code 値を登録するkintoneアプリのフィールドコード(すでに入力されています)
セミコロン区切りで複数指定できますが、制限事項にあるフィールドタイプは設定できません。
例) answer;point
動作確認
設定が終わったらさっそく実行してみましょう。
実行するにはChoregrapheの画面上部にある「再生ボタン」をクリックします。再生されるとPepperは音声入力待ちの状態になります。(実機につながれていない場合、Speech Reco.が赤く表示されますがkintone POST ボックスは動作します)
Pepperの実機がある場合は「はい」、もしくは「いいえ」と話しかけてみてください。実機がない場合はChoregrapheのダイアログ機能を使用して「はい」、もしくは「いいえ」という文字列を送信します。
画像のようにkintoneにレコードが登録されていれば成功です!
サンプルの解説
今回のサンプルについて簡単に解説します。kintone POST ボックス以外にも以下のような機能を持ったボックスを使用しています。
ボックス名 | 機能 |
Set Language | Pepperの言語設定です。サンプルでは日本語に設定してあります。 |
Speech Reco. | 特定の単語を聞くためのボックスです。 |
Switch Case | Switch文での分岐を設定します。サンプルでは「はい」と「いいえ」の条件分岐を設定しています。 |
Text Edit | 次のボックスに渡す文字列を設定します。 |
Set LanguageでPepperの言語を日本語に設定した後、Speech Reco.で音声の入力待ちの状態にします。
Switch Caseで「はい」、「いいえ」の分岐を設定しているので、どちらかの音声が入力されると分岐に応じて処理が進みます。
「はい」が入力された場合、Text Editを使用して"はい;100"という文字列をkintone POST ボックスに渡します。
kintone POST ボックスは入力された文字列をセミコロンで区切り、field-codeに設定されたフィールド(セミコロン区切り)それぞれに値をセットしてkintoneにリクエストを送信します。
その他
kintone POST ボックスの仕様
- field-codeに指定したフィールド数と入力された文字列をセミコロン区切りにした時の数が等しくない場合、リクエストを送信せずに終了します
- リクエストに成功した場合、onStoppedにレスポンスを出力します
- リクエストに失敗した場合、onFailedにレスポンスを出力します
制限事項
kintone POST ボックスは以下のフィールドタイプには対応していません。
- ユーザー選択
- 作成者
- 更新者
- チェックボックス
- 複数選択
- 添付ファイル
- テーブルに含まれる各種フィールド
動作確認環境
Mac OS X v10.8.5
Choregraphe v2.1.2.17
ライセンス
本サンプルプログラムはMIT licenseにて提供されています。
添付ファイル
ファイル名 | 内容 |
kintone-post.zip | Choregrapheのプロジェクトを格納したファイル |
kintone-post-box.cbl | kintone POST ボックスのみ格納したファイル |
バーチャルロボットでテストしていますが、OnFailedとなりデータ登録されません。sub-domain、app-no、API-Tokenはkintoneに作成したアプリでセットしており、LogにErrorは出ていませんが、何か考えられますでしょうか?なおChoregrapheはVersion 2.3.1.25です。よろしくお願いいたします。
塚本 さま
https://cybozudev.zendesk.com/hc/communities/public/questions/203250680
にもありますが、WindowsのChoregrapheバーチャルロボットではSSLモジュールが有効になっていない場合があるようです。
Windowsの場合、Pepperの実機かMAC環境で試してみてはいかがでしょうか?
Pepperの実機でMAC環境にてテストしたのですがデータ登録されません・・・
私も同様にsub-domain、app-no、API-Tokenはkintoneに作成したアプリでセットしており、LogにErrorは出ていません。
ご教授いただけますと幸いです、よろしくお願いいたします。
ChoregrapheはVersion 2.3.1.25です。
太田さま
バーチャルロボットでテストした場合はいかがでしょうか。
また、エラーが出ていない、ということですが
以下の方法を試して、エラーが出力されるかどうかご確認いただけますでしょうか。
○手順
1. kintone POST ボックスをダブルクリックしスクリプトエディタを開く
2. 46行目以降を以下のように変更して保存する
except urllib2.URLError, message:
self.logger.info(message) ★<--この行を追加
self.onFailed(message)