cybozu developer network

カテゴリー内の他の記事

Pepper -kintone POST ボックス-(M-SOLUTIONS株式会社)

(著者:サイボウズ 西尾 定也)

はじめに

今回は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

  1. 30日間無料お試し環境、または開発者ライセンスからkintoneの試用環境を申し込みます
  2. アプリの作成で「はじめから作成」を選択します
  3. フォームの編集で以下のようにフィールドを設定します
    フィールドタイプ フィールド名 フィールドコード
    文字列1行 回答 answer
    数値 点数 point
  4. 詳細設定の「APIトークン」からレコード追加権限を付与したAPIトークンを発行します
  5. 「設定完了」ボタンをクリックしアプリの作成を完了します

Pepper

  1. Aldebaran社のコミュニティページでアカウントを作成します
  2. サインイン後にダウンロードページからChoregrapheのインストーラを取得しインストールします

Choregrapheでの設定

 事前準備ができたらChoregrapheで設定を行っていきます。今回はkintone POST ボックス以外の項目は予め設定してあるプロジェクトファイルを利用します。

  1. ページ下部の添付ファイル(kintone-post.zip)をダウンロードし、任意のディレクトリに解凍します
  2. Choregrapheを起動します
  3. 画面左上の「ファイル」>「プロジェクトを開く」から、解凍したディレクトリ内に存在するkintone-post.pmlを開きます
  4. 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トークンを入力します
    例) F4RF7vL5fqWJXeS7GNmm0wHZic5zQiXCZboxf8Fy

    field-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 ボックスのみ格納したファイル

 

記事に関するフィードバック

記事のコメント欄は記事に対するフィードバックをする場となっております。
右の記事フィードバックのためのガイドを参照してコメントしてください。
記事のリンク切れなど、気になる点がある場合も、こちらのフォームからフィードバックいただけますと幸いです。

Avatar
塚本 好寿

バーチャルロボットでテストしていますが、OnFailedとなりデータ登録されません。sub-domain、app-no、API-Tokenはkintoneに作成したアプリでセットしており、LogにErrorは出ていませんが、何か考えられますでしょうか?なおChoregrapheはVersion 2.3.1.25です。よろしくお願いいたします。

Avatar
Sada Nishio

塚本 さま
https://cybozudev.zendesk.com/hc/communities/public/questions/203250680
にもありますが、WindowsのChoregrapheバーチャルロボットではSSLモジュールが有効になっていない場合があるようです。
Windowsの場合、Pepperの実機かMAC環境で試してみてはいかがでしょうか?

Avatar
太田悠

Pepperの実機でMAC環境にてテストしたのですがデータ登録されません・・・

私も同様にsub-domain、app-no、API-Tokenはkintoneに作成したアプリでセットしており、LogにErrorは出ていません。
ご教授いただけますと幸いです、よろしくお願いいたします。
ChoregrapheはVersion 2.3.1.25です。

Avatar
たく

太田さま

バーチャルロボットでテストした場合はいかがでしょうか。

また、エラーが出ていない、ということですが
以下の方法を試して、エラーが出力されるかどうかご確認いただけますでしょうか。

○手順
1. kintone POST ボックスをダブルクリックしスクリプトエディタを開く

2. 46行目以降を以下のように変更して保存する

except urllib2.URLError, message:
self.logger.info(message) ★<--この行を追加

self.onFailed(message)

  1. 左上「表示」から「ログビューア」を開き、ログレベルを「情報」に設定する
  2. 再生ボタンを実行し、ダイアログから「はい」を入力
  3. kintone POST ボックスのonFailedが出力されていることを確認
サインインしてコメントを残してください。