0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

HueのRemote APIで外部から家のライトを制御する。

Last updated at Posted at 2020-11-28

コードを受け取るための簡易サーバーの準備

  1. Google Chromeの「Web Server for Chrome」のアドオンを追加する。
  2. 追加したアドオンを起動する。
  3. 「CHOOSE FOLDER」から任意のフォルダを選択する。
    スクリーンショット 2020-11-28 17.35.46.png
  4. これでWebサーバーが起動している状態になる。http://127.0.0.1:8887 にアクセスすると、「Index of current directory...」と表示されるページが開くはず。

Remote Hue API appidsの登録

  1. HueのDevelopperサイトにアクセス&ログインする。
  2. 右上のユーザー名の所のドロップダウンリストから「Remote Hue API appids」選択する。
    スクリーンショット 2020-11-28 16.35.09.png
  3. 「Add new Remote Hue API app」を選択する。
  4. 「App name」と「Application description」を適当に入力し、Callback URLに先ほどの簡易WebサーバーのURLを入力する(今回の場合はhttp://127.0.0.1:8887)。
    スクリーンショット 2020-11-28 17.41.43.png
  5. 「Submit」を押すと、以下の情報が返ってくるはず:
    • AppId
    • ClientId
    • ClientSecret

コードの取得

  1. コードを受け取るための以下のURLの各パラメータを、2.で取得したものに置き換え、ブラウザで実行する。

https://api.meethue.com/oauth2/auth?clientid=&appid=&deviceid=&devicename=&state=&response_type=code

|パラメータ名|概要|
|:--|:--|:--|
|clientid|Remote Hue API appidsに登録した時に取得した英数字の文字列|
|state|レスポンスに含める任意の文字列。30文字以上のランダムな文字列を指定することを推奨|
|deviceid|任意の文字列|
|devicename|任意の文字列|
|appid|Remote Hue API appidsに登録した時指定されたAppのID|
|response_type|「Code」を指定する。|

  1. ログインやHue Bridgeとのリンクなどを確認されたら、ブラウザの表示にしたがって対応する。

  2. 1.の簡易Webサーバーの画面が開く。このときURLを確認すると、パラメタータとして「Code」が記載されている(code=XXXXXXXXの部分)のでこれをメモしておく。

ClientIdとClientSecretのbase64エンコード

前々段で取得したClientIdとClientSecretをbase64でエンコードしておく。

# bash
CLIENTID=XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
CLIENTSECRET=XXXXXXXXXXXXXXXX

echo -n "${CLIENTID}:${CLIENTSECRET}" | base64
# base64でエンコードされた結果が出力される。
# XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX==

Basic認証(トークンの取得)

  1. Google Chromeの「Talend API Tester - Free Edition」のアドオンを追加する。
  2. 追加したアドオンを起動する。
  3. 以下を指定して「Send」を実行する。
    • METHODに「POST」
    • SCHEMEに「https://api.meethue.com/oauth2/token?code=<前々段で取得したCode>&grant_type=authorization_code」
    • HEADERのAuthorizationに「Basic <前段で取得したbase64エンコード文字列>」
      スクリーンショット 2020-11-28 21.15.42.png
  4. 成功すると200とaccess_tokenなどが返ってくる。

API実行(Google Chromeの「Talend API Tester」で)

  1. 以下を指定して「送信」を実行。

    • METHODに「PUT」
    • SCHEMEに「https://api.meethue.com/bridge/0/config」
    • HEADERのAuthorizationに「Bearer <前段で取得したaccess_token>」
    • HEADERのContent-Typeに「application/json」
    • BODYに「{ "linkbutton": true }」
  2. Hue Bridgeのリンクボタンを押す。

  3. 以下を指定して「送信」を実行。

    • METHODに「POST」
    • SCHEMEに「https://api.meethue.com/bridge/」
    • HEADERのAuthorizationに「Bearer <前段で取得したaccess_token>」
    • HEADERのContent-Typeに「application/json」
    • BODYに「{ "devicetype" : "<前々々々段で取得したAppId>
  4. usernameが返ってくるはず。

  5. 以下を指定して「送信」を実行。

  6. ライトの状態の情報が返ってくるはず。
    スクリーンショット 2020-11-28 21.54.44.png

  7. あとはLocal APIと同様に活用可能。

参考

TBD

トークンのリフレッシュ

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?