スマートロック セサミのAPIを使ってみる
といわけで、前回に引き続きスマートロック セサミ
今回はAPIに触れていきます!
どんなAPI?
思っていたよりもシンプルなAPIです。ドキュメントは以下から。
CANDY HOUSE Developer Reference
できることはセサミ一覧の取得と鍵の開け締めだけ。個別取得APIもありますが、取得できる情報は一覧取得APIと変わりありません。
・セサミ 一覧取得API
・セサミ 個別取得API
・鍵の開け締めAPI
ユースケースとしては個人用というより、toB・Air BnBの鍵管理とかが向いているのかなと。
ちなみに以下でPostmanを利用したチュートリアルも公開されています。
https://docs.candyhouse.co/#sesame-api-tutorial
Third-Party Librariesとして、.NETやPython、Rubyのライブラリが公開されているのはありがたいところ。
https://docs.candyhouse.co/#third-party-libraries-plugins
事前準備
設定画面からAPIの有効化(以下の部分)をしておく必要があります。
あと、Wifiアクセスポイントも事前に設定しておきましょう。
認証アプローチ
認証には、セサミに登録しているID・PWをHTTPリクエストで渡して、Tokenを取得し、そのTokenを使って実際のエンドポイントにアクセスします。
パスワードを平文で送るのがちょっと心配。
POST https://api.candyhouse.co/v1/accounts/login Content-Type:application/json Body:{"email":"mail@mail.com", "password":"passowrdddd"} Response { "authorization": "d79a3f40b8ccaabb7561a9c0f56f4da075303ab32df078559bfeba97eabd0aa46a589111490b8bd8429b5d89a7a762a567425a6ae9834673a848f7b0c5d571e610805fb06e61d4783354414dbb7b55ab2828631403ce18ed48670fe0b" }
トークンは30日後に有効期限が切れるとのこと。
パスワードが変更された場合、トークンは失効するので要注意。
Sesame 一覧を取得
登録されているセサミの一覧を取得します。ヘッダーに取得したTokenを貼り付けるだけ。
取得できる情報は、ロックの状態とAPIの有効状態、バッテリー残量です。このあたり、toBでは役に立ちそうですね。
GET https://api.candyhouse.co/v1/sesames Accept:application/json X-Authorization:d79a3f40b8ccaabb7561a9c0f56f4da075303ab32df078559bfeba97eabd0~~~ Response { "sesames": [ { "device_id": "ABCD12345", "nickname": "マイホーム", "is_unlocked": false, "api_enabled": true, "battery": 100 } ] }
Sesame 個別取得
SesameIDを指定して、Sesameのステータスを取得できます。
でも、取得できる情報は一覧と変わりない。大量にSesameがある場合有効かな。
GET https://api.candyhouse.co/v1/sesames/ABCD12345 Accept:application/json X-Authorization:d79a3f40b8ccaabb7561a9c0f56f4da075303ab32df078559bfeba97eabd0~~~ { "nickname": "マイホーム", "is_unlocked": false, "api_enabled": true, "battery": 100 }
鍵の開け締め
PostリクエストでBodyにlock、unlockを指定して、鍵の開け締めを行えます。
わかりやすい。
POST https://api.candyhouse.co/v1/sesames/ABCD12345/control Content-Type:application/json Body:{"type":"lock"} もしくは {"type":"unlock"}
終わりに
個人的に履歴情報が一番欲しかったのですが、今の所無い模様。。。
API URLにv1の文字もあるので、今後に期待したいところです。