アプリケーション開発

クラウドプラグインによる赤外線学習リモコン+テレビの操作 (cURL編)

ステップ1:赤外線学習リモコン用クラウドプラグインの有効化

IoTアクセス制御エンジンへのログイン

cURLがインストールされているPCのブラウザおよびコマンドラインツールを使用し、IoTアクセス制御エンジンにログインしてアクセストークンを取得します。

1 ブラウザを起動し、以下の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アクセス制御エンジンのログイン画面が表示されます。

2 IoTアクセス制御エンジンにログインします。

  • 初めてログインする場合

    [登録はこちら]を押し、表示されたアカウント登録画面で[Googleアカウントで登録]、[dアカウントで登録]、[Facebookアカウントで登録]、[LINEアカウントで登録]のいずれかを押すとアカウントが作成されます。

    図:ログイン画面

    ログイン画面に戻り、「登録済みのアカウントでログインする場合」の操作を行ってください。

  • 登録済みのアカウントでログインする場合

    [Googleアカウントでログイン]、[dアカウントでログイン]、[Facebookアカウントでログイン]、[LINEアカウントでログイン]のいずれかを押します。各アカウントのログイン画面が表示されたときは、画面の指示に従ってください。

    図:ログイン画面

IoTアクセス制御エンジンへのログインが完了すると、指定したサイトのURLへリダイレクトされます。リダイレクトされたサイトのURLから、認可コード("code")を取得します。取得した認可コードは、メモ帳などのテキストエディタにコピー&ペーストしておくと便利です。

https://localhost:8080/?state=abcd&code=XXXX#

XXXX:リダイレクト時に付与された認可コードです。

"state"に、手順①で指定した文字列が表示されていることを確認してください。

図:リダイレクトサイト画面

※上記のような画面が表示される場合でも、認可コードは発行されます。

3 コマンドラインツールを起動し、以下のコマンドでアクセストークンを取得します。

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}

4 以下のコマンドでアクション一覧を取得し、IoTアクセス制御エンジンにログインできていることを確認します。

curl -X GET https://dsymphony.com/management/v2/me/devices/actions -H 'authorization: Bearer XXXX'

XXXX手順③で取得したアクセストークンを入力してください。

以下の結果が表示されます。

{"result":0,"error":null,"device":[]}

これで、IoTアクセス制御エンジンにログインできました。

クラウドプラグインの有効化

1 以下のコマンドで、利用可能クラウドプラグインの一覧を取得します。

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
      }
    ]
  }

2 以下のコマンドで、クラウドプラグインを有効化します。

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"
  }
}

これで、赤外線学習リモコン用クラウドプラグインを有効にできました。