アプリケーション開発
クラウドプラグインによる赤外線学習リモコン+テレビの操作 (cURL編)
ステップ1:赤外線学習リモコン用クラウドプラグインの有効化
IoTアクセス制御エンジンへのログイン
cURLがインストールされているPCのブラウザおよびコマンドラインツールを使用し、IoTアクセス制御エンジンにログインしてアクセストークンを取得します。
ブラウザを起動し、以下のURLにアクセスします。
https://dsymphony.com/oauth/v2/authorize?response_type=code&scope=management%20archive%20device&client_id=XXXX&state=abcd&redirect_uri=https://localhost:8080/
XXXX:ご利用申込み時に発行されたクライアントIDを入力してください。
"state"は認可コードを得る側が設定する任意の文字列(ここでは「abcd」)、"redirect_uri"はリダイレクト先サイトのURL(ここでは、ローカルのWebサーバ)を指定します。
IoTアクセス制御エンジンのログイン画面が表示されます。
IoTアクセス制御エンジンにログインします。
-
初めてログインする場合
[登録はこちら]を押し、表示されたアカウント登録画面で[Googleアカウントで登録]、[dアカウントで登録]、[Facebookアカウントで登録]、[LINEアカウントで登録]のいずれかを押すとアカウントが作成されます。
ログイン画面に戻り、「登録済みのアカウントでログインする場合」の操作を行ってください。
-
登録済みのアカウントでログインする場合
[Googleアカウントでログイン]、[dアカウントでログイン]、[Facebookアカウントでログイン]、[LINEアカウントでログイン]のいずれかを押します。各アカウントのログイン画面が表示されたときは、画面の指示に従ってください。
IoTアクセス制御エンジンへのログインが完了すると、指定したサイトのURLへリダイレクトされます。リダイレクトされたサイトのURLから、認可コード("code")を取得します。取得した認可コードは、メモ帳などのテキストエディタにコピー&ペーストしておくと便利です。
https://localhost:8080/?state=abcd&code=XXXX#
XXXX:リダイレクト時に付与された認可コードです。
"state"に、手順①で指定した文字列が表示されていることを確認してください。

※上記のような画面が表示される場合でも、認可コードは発行されます。
コマンドラインツールを起動し、以下のコマンドでアクセストークンを取得します。
curl -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=authorization_code&code=XXXX&redirect_uri=https://localhost:8080/" -X POST https://dsymphony.com/oauth/v2/token
XXXX:手順②でリダイレクトされた"code"の値を入力してください(最後尾の'#'(ターミネータ)は除外してください)。
"redirect_uri"は手順①で指定したリダイレクト先サイトのURL(ここでは、ローカルのWebサーバ)を入力してください。
※以下の結果が表示されます。
{"access_token":"XXXX","refresh_token":"XXXX","scope":"archive device management","token_type":"Bearer","expires_in":86400}
※取得したアクセストークンは、24時間のみ有効です。前回ログインから24時間経過した場合は、再ログインしてください。
参考
リフレッシュトークンを利用し、アクセストークンの有効期限を延長させることもできます。
以下のコマンドを実行します。
curl -H "Content-Type: application/x-www-form-urlencoded" -d "grant_type=refresh_token&refresh_token=XXXX" -X POST https://dsymphony.com/oauth/v2/token
XXXX:手順③の結果に表示された"refresh_token"の値を入力してください。
アクセストークンとリフレッシュトークンが更新され、以下の結果が表示されます。
{"access_token":"XXXX","refresh_token":"XXXX","scope":"management archive device","token_type":"Bearer","expires_in":86400}
以下のコマンドでアクション一覧を取得し、IoTアクセス制御エンジンにログインできていることを確認します。
curl -X GET https://dsymphony.com/management/v2/me/devices/actions -H 'authorization: Bearer XXXX'
XXXX:手順③で取得したアクセストークンを入力してください。
以下の結果が表示されます。
{"result":0,"error":null,"device":[]}
これで、IoTアクセス制御エンジンにログインできました。
クラウドプラグインの有効化
以下のコマンドで、利用可能クラウドプラグインの一覧を取得します。
curl -X GET "https://dsymphony.com/management/v2/me/cloudPlugins/availabilities" -H "accept: application/json" -H 'authorization: Bearer XXXX'
XXXX:「IoTアクセス制御エンジンへのログイン」手順③で取得したアクセストークンを入力してください。
利用可能クラウドプラグインの一覧が表示されます。
{ "result": 0, "error": null, "availableCloudPluginList": [ { "cloudPluginId": "cp-4B0C5A357D13AD9F4CA710A034EFA3B8", "cloudPluginName": "RexCloudPlugin", "providerName": "RATOC Co, Ltd.", "summary": "Ratoc社製家電リモコンを操作します。", "availableProfile": "REX の発見,REX クラウドプラグインのサービス情報,REX 本体のサービス情報,リモートデバイスのサービス情報;REX クラウドプラグインのサービスの API,サービス情報の取得,クラウドプラグイン有効化通知,クラウドプラグイン無効化通知,ユーザ情報の登録,ユーザ情報の削除;REX 本体のサービスの API,サービス情報の取得,存在確認,プリセットデバイス情報の取得,プリセットデバイスのボタン情報の取得,プリセットデバイスの家電種別一覧の取得,プリセットデバイスのメーカー一覧の取得,リモートデバイスの登録,リモートデバイスの更新,リモートデバイスの削除,赤外線パターン取得,赤外線パターン送信,温度センサー計測値の取得,湿度センサー計測値の取得,照度センサー計測値の取得;照明機器サービスの API,サービス情報の取得,存在確認,点灯,消灯,設定変更;テレビ機器サービスの API,サービス情報の取得,存在確認,電源 ON,電源 OFF,チャンネル操作,音量操作,放送波操作,消音 ON,消音 OFF,リモコンボタンデータ送信;エアコン機器サービスの API,サービス情報の取得,存在確認,電源 ON,電源OFF,運転モード操作,温度設定", "icon": "img/ratoc_icon.png", "version": null, "enabled": false } ] }
以下のコマンドで、クラウドプラグインを有効化します。
curl -X POST "https://dsymphony.com/management/v2/me/cloudPlugins" -H "accept: application/json" -H "Authorization: Bearer XXXX" -H "Content-Type: application/json" -d "{ \"cloudPluginId\": \" XXXX\"}"
XXXX:「IoTアクセス制御エンジンへのログイン」手順③で取得したアクセストークンを入力してください。
XXXX:手順①で取得した"cloudPluginId"(cp-XXXX)を入力してください。
以下の結果が表示されます。
{ "result": 0, "error": null, "cloudPluginInfo": { "cloudPluginId": "cp-4B0C5A357D13AD9F4CA710A034EFA3B8", "cloudPluginName": "RexCloudPlugin", "providerName": "RATOC Co, Ltd.", "summary": "Ratoc社製家電リモコンを操作します。", "availableProfile": "REX の発見,REX クラウドプラグインのサービス情報,REX 本体のサービス情報,リモートデバイスのサービス情報;REX クラウドプラグインのサービスの API,サービス情報の取得,クラウドプラグイン有効化通知,クラウドプラグイン無効化通知,ユーザ情報の登録,ユーザ情報の削除;REX 本体のサービスの API,サービス情報の取得,存在確認,プリセットデバイス情報の取得,プリセットデバイスのボタン情報の取得,プリセットデバイスの家電種別一覧の取得,プリセットデバイスのメーカー一覧の取得,リモートデバイスの登録,リモートデバイスの更新,リモートデバイスの削除,赤外線パターン取得,赤外線パターン送信,温度センサー計測値の取得,湿度センサー計測値の取得,照度センサー計測値の取得;照明機器サービスの API,サービス情報の取得,存在確認,点灯,消灯,設定変更;テレビ機器サービスの API,サービス情報の取得,存在確認,電源 ON,電源 OFF,チャンネル操作,音量操作,放送波操作,消音 ON,消音 OFF,リモコンボタンデータ送信;エアコン機器サービスの API,サービス情報の取得,存在確認,電源 ON,電源OFF,運転モード操作,温度設定", "icon": "img/ratoc_icon.png", "version": null, "gatewayId": "", "thingId": "", "serviceId": "rex-cloudplugin", "enabled": true, "expirationDate": null, "authorizeUri": "ratocAuthentication.jsp" } }
これで、赤外線学習リモコン用クラウドプラグインを有効にできました。