eddystone

たった2行!最も簡単にeddystoneでURLを送信する方法

More than 3 years have passed since last update.

なんか新しい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を書きます。下記をコピペでも構いません。


app.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を短くしてみましょう。