なんか新しいeddystoneってのが出たみたいだし試してみるか…
でもどうやってそもそも電波飛ばしたらいいんだ?
というわけで、Macを使って最も簡単にeddystoneのEddystone-URLを飛ばしてみたいと思います。
#環境
- Bluetooth Low Energy(BLE, Bluetooth4.0)が搭載されたMac製品
- Macbook Pro, Macbook Pro Retina, Macbook Airなどなど
- 最近の製品なら大抵OK
- node.js v0.12.0 (筆者の動作確認環境)
#準備
Macでnode.jsとnpmを使えるようにする必要があります。
http://nodejs.org/
から"INSTALL"をクリックしpkgファイルをダウンロードし、インストールします。
その後、無ければ適当にディレクトリを作成しましょう。
ここでは~/eddystone
を作成します。
mkdir ~/eddystone
これで準備は完了です!
#Eddystone-URLを飛ばしてみる
この表現があっているのかわかりませんが…。
node-eddystone-beaconを使用します。
ちなみに、今回はEddystone-URLを飛ばそうとしていますが、Eddystone-UIDも飛ばすことが出来ます。
node-eddystone-beaconをnpm installしましょう
cd ~/eddystone
npm install eddystone-beacon
その後、適当にjsを書きます。下記をコピペでも構いません。
EB = require('eddystone-beacon');
EB.advertiseUrl('http://goo.gl/uagFfW');
これで準備は完了です。
実際に実行してみましょう。
node ~/eddystone/app.js
特にエラーがでなければ成功です。
iOS版Chrome(44以上)のToday Extensionで手軽に確認できます。
#よくあるエラー
$ node app.js
/.../eddystone/node_modules/eddystone-beacon/node_modules/eddystone-url-encoding/lib/encode.js:16
throw new Error([
^
Error: Encoded URL (http://3.141592653589793238462643383279502884197169399375105820974944592.com/) is too long (max 18 bytes): 67 bytes
at module.exports (/.../eddystone/node_modules/eddystone-beacon/node_modules/eddystone-url-encoding/lib/encode.js:16:11)
at Object.makeUrlBuffer (/.../eddystone/node_modules/eddystone-beacon/lib/advertisement.js:31:19)
at Object.advertiseUrl (/.../eddystone/node_modules/eddystone-beacon/lib/beacon.js:10:43)
at Object.<anonymous> (/.../eddystone/app.js:2:4)
at Module._compile (module.js:460:26)
at Object.Module._extensions..js (module.js:478:10)
at Module.load (module.js:355:32)
at Function.Module._load (module.js:310:12)
at Function.Module.runMain (module.js:501:10)
at startup (node.js:129:16)
指定しているURLが長すぎます。
URL短縮サービスなどを使用してURLを短くしてみましょう。