今回はSwitchbot APIのVersion1.1の使用方法を確認してみたいと思います。Version1.1では認証が強化された事でAPIによるロックの解施錠を操作可能となったようです。やはりロックの解錠はセキュリティ面で安心できる方法で使用すべきですよね。Version1.0との共通点は省略していますので前回の記事もあわせて読んでいただければと思います。
Ver1.0とVer1.1の違い
Ver 1.1のGitHubに記載されているAPI使用方法を確認すると”Request Header”のパラメータが4つに増えていることがわかります。つまり下表の通り、Ver 1.0ではGET request のHeaderとして”Authorization”の1つを送信するだけでしたが、Ver 1.1では”Authorization”、sign”、”t”、”nonce”の4つを送信する必要があります。


具体的にはVersion1.0でのデバイスリストの取得は、コマンドプロンプトで
curl -X GET “https://api.switch-bot.com/v1.0/devices” -H “Authorization: {Token}”
を送信したところを、Version 1.1では、
curl -X GET “https://api.switch-bot.com/v1.1/devices” -H “Authorization: {Token} -H “sign: {signature}” -H “t: {timestamp}” -H “nonce : {UUID}“
のようにヘッダーを4つ並べて送信すれば問題なく取得できます。
Signatureを生成する
Getリクエストで送信する4つのパラメータは、GitHubの「How to Sign?」に詳しく記載されていますが、pythonやJavaScriptを含む各言語向けのサンプルプログラムを実行すれば簡単に生成する事ができます。

ここで重要な点は、生成されたパラメータは生成後およそ5分以内で使用できなくなりますのでGetリクエストを送信する直前にパラメータを生成する必要があります。
以上の通りでVersion1.1の使用方法が理解できましたので、今後はサポートが切れるVersion1.0は使用せずにセキュリティが強化されたVersion1.1を使用していきたいと思います。
コメント