PILOTにRing ZEROがやってきたので、早速遊んでみました!
Ring 開発者向けページにOpen URIというアクションを使ったサンプルがあったので、これを参考にしてみます。
Open URIでできること
ジェスチャーを完了すると HTTP GET/POSTで送信します。
WEBプログラミングでよく使われている HTTP方式を使うことで、様々なWEBサービスとの連携や他の ハードウェアとの接続を行う事が可能です。
開発者向けページに書かれている通り、HTTPでの通信のみが行えるようです。
Open URIの設定
ジェスチャの作成
RingのアプリのAdd New Actionを押すと、DEVELOPERの中にOpen URIがあります。
Add Actionボタンを押したら、ジェスチャーとURIの設定画面がでてきました。
URI入力欄しかないのですが、、どうやってGETとPOSTを分けるのでしょうか・・・。
POSTの方法がわからないので、今回はGETでやってみようと思います。
ジェスチャーは何パターンかテストしてみたかったので、アルファベットの「R」、アルファベットの「L」、サムズアップっぽい「指マーク」を作ってみました。
URIの設定
HTTPでの通信のみという事だったので、前回覚えたNode.jsを使ってローカルのMacと通信させてみます。
通信結果をコンソールに出すだけでは面白くないので、今回もSlackと連携してみました。
- ジェスチャー「L」→ コンソールに「left」と表示
- ジェスチャー「R」→ コンソールに「right」と表示
- ジェスチャー「サムズアップ」→ lgtm.in/g からランダムにLGTM画像を取得してSlackの「#0_test」チャンネルに投げる
前回と違い、今回はNode.js→Slackの一方通行なので、Incoming WebHooksを使って投稿してみます。
var express = require('express');
var req = require('request');
var SlackIncoming = require('node-slackr');
var slack = new SlackIncoming("[Incoming WebHooks URL]", {
channel: "#0_test", // 投稿するチャンネル
username: "Ring", // ユーザー名
icon_emoji: ":ring:" // 表示するユーザーアイコン
});
var app = express();
/**
* サムズアップ ジェスチャー に設定したURI
*/
app.get('/lgtm', function (req, res) {
console.log('lgtm');
req.get({
uri: "http://www.lgtm.in/g",
json: true
}, function (err, res, body) {
//画像URLを投稿
slack.notify(lgtm);
});
});
/**
* R ジェスチャー に設定したURI
*/
app.get('/right', function (req, res) {
console.log('right');
});
/**
* L ジェスチャー に設定したURI
*/
app.get('/left', function (req, res) {
console.log('left');
});
app.listen(3000); // ポート番号は3000
app.jsとして保存して、node app.js
で立ち上げておきます。
Open URIに設定するのは、MacのIPアドレスです。
システム環境設定→ネットワーク設定からMacのIPアドレスを確認できます。
- ジェスチャー「L」に
IPアドレス:3000/left
を設定。 - ジェスチャー「R」に
IPアドレス:3000/right
を設定。 - ジェスチャー「サムズアップ」に
IPアドレス:3000/lgtm
を設定。
動作チェック
まずは「L」!
このジェスチャーは余裕です。
おk
次は「R」!
「L」よりちょっと難しい・・・。
成功。
最後の難関!!
めっっっっっっっちゃ難しかったけど、どうにか成功!
無事、Slackにもおいしそうなイクラ丼が投稿されました!
全ジャスチャー大成功です!
今回は、Ring ZEROのOpen URIを使って遊んでみました。
今後、iOS SDKやAndroid SDK、Ring for VRが提供予定の様なので、
もっと面白い遊び方ができそうです。
それでは、また次回!