はじめに
PepperからChatWorkにメッセージを投稿できるように、Python Scriptで自作のボックスを作成したので、ご紹介します。このボックスを使うことで、アプリケーション内にChatWorkに任意のメッセージデータを送信するような仕組みを入れることができます。
例えば、Pepperを受付で活用しているとして、アポを取っている人間を選ぶとチャットワークにその人間宛のメッセージが流れたり、ソリタリー状態で一定間隔に、Pepperのぼやきをチャットワークに流したりといったような、様々な用途が考えれます。
使い方
最下部にリンクを用意して、サンプルアプリとボックスをGithub上で公開していますので、そちらを参考にしてください。
ここに載せませんが、ボックスのコード自体は非常にシンプルなものになってます。(どうぞご自由に拡張してください)
用意するもの
- Choregraohe
- ChatWork POST用ボックス(最下部でダウンロード可能)
- ChatWorkのアカウントとAPIトークン
サンプルのボックス構成
入力
- onStart
出力
- onStopped → 終了へ
- onFailed → エラー内容読み上げ
「Text Edit」に任意の文字列を入力して、その値を「ChatWork POST」というボックスに送ります。あとは受け取った側のそのボックスからurllib2というPythonのモジュールを使って、ヘッダ情報とデータを設定してリクエスト送信します。
exceptで例外を処理。
エンドポイントなどChatWork APIの細かい情報に関しては、こちらのドキュメントを参考にしてください。
特別変わったことをしている訳では無いので、GETや他の公開されているWeb APIでも型にはまる形だとは思います。
ボックスのパラメータ
送信の際に、エンドポイントとAPIトークンを設定しておかなければいけない訳ですが、こちらはボックスの「変数」としてダイアログ入力ができるようにしています。
ボックスのスパナのアイコンをクリックしてそれぞれ入力してください。
name | type | detail |
---|---|---|
Room | String | ルームID |
API-Token | String | 認証に使用 |
APIトークンの取得の方法についても、「ChatWorkAPI ドキュメント」を参考にしてください。
ルームIDはチャット部屋ごとに一意の値が設定されています。
実行
整いましたところで実行です。
「TextEdit」から文字列が流れ〜の
「ChatWork」に投稿され〜の
以下のJSON形式でレスポンスが返され〜の
{
"message_id": 1234
}
終わり〜の
サンプルプロジェクト
https://github.com/king-panda/chatwork_post
※ ボックス単体のファイル(.cbl)も格納しています。
動作確認環境
- Mac OS X v10.8.5
- Choregraphe v2.1.2.17
※ Windowsは動作確認していません。