Kii Cloud の設定

まず、Kii Cloud 側の設定を行います。Kii Cloud 上にアプリケーションを作成し、Thing とそのオーナーとなるユーザーを作成します。これによって、Kii Cloud が SORACOM からのステートを受け取る準備を行います。

このページでは、以下の 4 つの作業を行います。

  1. IMSI の確認

    使用する SIM の IMSI を確認します。

  2. アプリケーションの作成

    Kii Cloud 上に SORACOM Funnel との連携で使用するアプリケーションを作成します。

  3. オーナーユーザーの作成

    Thing のオーナーとなるユーザーを作成します。ユーザー作成時のユーザー名とパスワードは図に示した固定のものとします。

  4. 初期登録の実行

    Thing の初期登録を実行し、Thing を作成すると同時にオーナーユーザーとの紐付けを行います。Thing の vendorThingID とパスワードは図に示した固定のものとします。

この作業の結果として、作成したアプリケーションにアクセスするための AppID、ClientID、ClientSecret、作成した Thing の thingID、オーナーユーザーのアクセストークンが得られます。これらを次のページ以降で使用します。

IMSI の確認

  1. Web ブラウザーで https://console.soracom.io を開いて、SORACOM のユーザーコンソールにログインします。

  2. ユーザーコンソールが開きます。

    SIM 管理画面が表示されます。

    一覧には使用できる SIM が表示されています。利用したい SIM を選択し、詳細ボタンをクリックします。

  3. SIM 詳細画面が表示されます。

    画面には IMSI の値が表示されています。この値は Kii Cloud での vendorThingID として使用するため、記録しておきます。

アプリケーションの作成

アプリケーションの作成は以下の手順で行います。

  1. 開発者ポータルにログインします。

    Kii Cloud の 開発者ポータル を開きます。

    アプリケーションの作成には Kii 開発者アカウントが必要です。アカウントがない場合は、開発者ポータルでアカウントをあらかじめ作成してください。

  2. "アプリを作成"(Create App)ボタンをクリックし、表示されるメニューにアプリケーション名、サーバー設置場所、アプリの開発プラットフォームを入力します。

    入力値が持つ意味については アプリケーションの作成 をご覧ください。

    SORACOM Funnel との連携を行う場合は、サーバー設置場所を「日本(Japan)」をにしてください。

    入力が完了したら "アプリを作成"(Create Your App)ボタンをクリックします。

  3. SDK をダウンロードするためのページが開きます。今回は SDK の手動でのダウンロードは不要なため、そのまま次の手順に進みます。

  4. "完了"(Finish)ボタンをクリックします。これで、アプリケーションが作成されました。

  5. 作成したアプリケーションを選択して、"Access Keys" をクリックします。

    アプリケーションに固有の値として AppID、AppKey、ClientID、ClientSecret が表示されます。これらの値は、次のページ以降でも使用するため、記録しておきます。

オーナーユーザーの作成

次に、REST API を使ってオーナーユーザーを作成し、作成したユーザーにログインしてアクセストークンを取得します。

このチュートリアルでは、REST API を使って実装していますが、Kii Cloud SDK を使って同様の実装を行うこともできます。REST API の実行のため cURL コマンドを使用しますが、cURL コマンドに慣れていない場合は、cURL コマンドについて に示す注意点も参考にしてください。

ユーザーの作成

開発用 PC のシェルから以下のコマンドを実行して、ユーザーを作成します。ここでは、ユーザー名 "user1"、パスワード "123ABC" で新規ユーザーの作成を行っています。

curl -v -X POST \
  -H "Authorization: Basic {BASE64_ENCODED_APPID_AND_APPKEY}" \
  -H "Content-Type: application/vnd.kii.RegistrationRequest+json" \
  "https://api-jp.kii.com/api/apps/{APP_ID}/users" \
  -d '{
        "loginName": "user1",
        "password": "123ABC"
      }'

ユーザーの作成は Basic 認証 を使って行います。{BASE64_ENCODED_APPID_AND_APPKEY} には AppID と任意の値をコロン(:) で連結した文字列を Base64 エンコードしたものを入れてください。変換の例は Basic 認証 を参照してください。

また、{APP_ID} には AppID を指定してください。

ユーザー作成が成功すると、Kii Cloud は次のようなレスポンスでユーザー ID({USER_ID})を返します。ユーザー ID は、次の初期登録の実行時に使用します。登録しようとしたユーザーと同名のユーザーがすでに登録されていた場合、HTTP ステータス 409 で通知します。

HTTP/1.1 201 Created
Server: Apache-Coyote/1.1
Location: https://api-jp.kii.com/api/apps/{APP_ID}/users/{USER_ID}
Content-Type: application/vnd.kii.RegistrationResponse+json
Transfer-Encoding: chunked
Date: Mon, 23 Apr 2012 00:22:38 GMT

{
  "userID" : {USER_ID},
  "internalUserID" : {INTERNAL_USER_ID},
  "loginName" : "user1",
  "_hasPassword" : true,
  "_disabled" : false
}

アクセストークンの取得

次に、作成したユーザーにログインし、アクセストークンを取得します。

curl -v -X POST \
  -H "Authorization: Basic {BASE64_ENCODED_APPID_AND_APPKEY}" \
  -H "Content-Type: application/json" \
  "https://api-jp.kii.com/api/apps/{APP_ID}/oauth2/token" \
  -d '{
        "grant_type": "password",
        "username": "user1",
        "password": "123ABC"
      }'

ユーザー名とパスワードはユーザー作成時に指定した user1123ABC を指定します。また、{BASE64_ENCODED_APPID_AND_APPKEY} にはユーザー作成時と同じ値を、{APP_ID} には AppID をそれぞれ指定します。

ログインが成功すると、Kii Cloud は次のようなレスポンスを返します。このレスポンスにおける "access_token" の値がアクセストークンです。アクセストークンの値は次のページ以降でも使用するため、記録しておきます。

< HTTP/1.1 200 OK
< Server: Apache-Coyote/1.1
< Content-Type: application/json
< Transfer-Encoding: chunked
< Date: Mon, 14 May 2012 22:52:52 GMT
<
{
  "id" : {USER_ID},
  "access_token" : {ACCESS_TOKEN},
  "expires_in" : 2147483647,
  "token_type" : "bearer"
}

初期登録の実行

次に、Thing Interaction Framework の REST API を使って Thing の初期登録を行います。

curl -v -X POST \
  -H "Authorization: Bearer {ACCESS_TOKEN}" \
  -H "X-Kii-AppID: {APP_ID}" \
  -H "X-Kii-AppKey: {APP_KEY}" \
  -H "Content-Type: application/vnd.kii.OnboardingWithVendorThingIDByOwner+json" \
  "https://api-jp.kii.com/thing-if/apps/{APP_ID}/onboardings" \
  -d '{
    "vendorThingID": "{VENDOR_THING_ID}",
    "thingPassword": "456DEF",
    "thingType": "thing",
    "owner": "user:{USER_ID}",
    "dataGroupingInterval": "1_MINUTE"
  }'

{VENDOR_THING_ID} には SORACOM のユーザーコンソールで確認した IMSI の値を、{ACCESS_TOKEN} にはオーナーユーザーのアクセストークンを、{USER_ID} にはユーザー ID を指定します。また、{APP_ID}{APP_KEY} には AppID と任意の値を指定します。

ここでは、Thing のパスワードを "456DEF"、ステート履歴のグループ化の間隔を 1_MINUTE として Thing を作成します。各パラメーターの指定方法の詳細は 初期登録 を、グループ化の間隔については ステート履歴の管理 を参照してください。

初期登録が成功すると、Thing Interaction Framework は以下のような 200 応答を返します。

HTTP/1.1 200 OK
Content-Type: application/json
{
  "thingID":"{THING_ID}",
  "accessToken":"{THING_ACCESS_TOKEN}",
  "mqttEndpoint":{
    "installationID":"{INSTALLATION_ID}",
    "host":"{BROKER_HOST}",
    "mqttTopic","{MQTT_TOPIC}",
    "userName":"{USERNAME}",
    "password":"{PASSWORD}",
    "portSSL":{PORT_SSL},
    "portTCP":{PORT_TCP},
    "portWS" : {PORT_WS},
    "portWSS" : {PORT_WSS},
    "ttl":{MQTT_TTL}
  }
}

応答の "thingID" が登録した Thing の thingID です。thingID は次のページ以降でも使用するため記録しておきます。

以上で、Kii Cloud 側の設定は完了です。


次は...

次に、この手順で取得した AppID、ClientID、ClientSecret を使って、SORACOM 側の設定を行います。thingID とアクセストークンは動作テストで使用します。

SORACOM の設定 に移動してください。