SwitchBotAPIを呼び出すフローを作り、enebularからHerokuへデプロイします。
作成例
用意するもの
- enebular
- プロジェクトが作成済みであること
- Herokuコネクションが作成済みであること
- Heroku
- アプリが作成済みであること
-
SwitchBot
- SwitchBotアカウントが作成済みであること
- SwitchBotアプリをスマートフォン等にインストール済みであること
- 任意のSwitchBot製品を少なくとも1つ利用できること
- SwitchBotクラウドサービスがオンになっていること
手順
enebular
フローを作る
http request
ノードがサポートしている認証方式では、SwitchBot APIを呼び出せないので、function
ノードでヘッダーにトークンを設定します。
NG
Authorization: <type> <credentials>
OK
Authorization: <credentials>
- 編集したいフローを開きます。
- パレットの
inject
、function
、http request
ノードをワークスペースに配置します。 -
inject
ノードの [Node-RED起動の 秒後、以下を行う] で適当に5
秒後に設定します。 -
function
ノードをsample-codeのように実装します。クレデンシャルを環境変数で読み取ります。 -
http request
ノードの [メソッド] をGETにし、 [URL] にSwitchBot APIのURLを入力します。今回は、SwitchBotアカウントに登録済みのデバイス一覧を取得するAPIを呼び出します。
sample-code
msg.headers = {};
msg.headers['Authorization'] = env.get("OPEN_TOKEN");
return msg;
SwitchBot
SwitchBotアプリからトークンを取得する
- SwitchBotアプリで、[プロフィール] > [設定] を開きます。
- [アプリバージョン] をリズミカルに10回タップします。
- [開発者向けオプション] をタップして、表示されたトークンを控えておきます。
image-1
Heroku
Herokuアプリに環境変数を設定する
- Herokuのダッシュボードから、作成済みのHerokuアプリの詳細画面を開きます。
- [Settings] タブの [Reveal Config Vars] をクリックします。
- [KEY] に
OPEN_TOKEN
と入力します。 - [VALUE] にSwitchBotアプリからトークンを取得するで控えたトークンをを入力して、環境変数を追加します。
- フローを作るで作ったフローを、Herokuにデプロイします。
- Herokuアプリのログに、デバイス一覧のJSONが出力されていることを確認します。
SwitchBotアカウントに登録済みのデバイス一覧を取得できました