目次
本記事は、下記のデモ作成時に作成されたテーブルを例にしています。
SAP Cloud Platform を触りたい貴方へ、全部無償でiPhoneを使ったIoTストリーミングデモ作成
「デモ動きましたか?」
PaaSならではの動作、少しは理解いただけたかと思います。手順書の最後にデモで作成されたテーブル参照のPowershellを参考情報としてつけておりましたが、デモ自体は手順書通りに設定するだけなので、ちょっと面白くないでよね。
今回は、内部で使われているMessage Management APIを外から叩いてみましょう。
SAP CPのIoTサービスのドキュメントは下記リンクを参照してください。Message Management Service APIのところに色々と記載あります。
Message Management Service API
POST
sample
下記のようにトークン(apikey)とdeviceID。
jsonファイルにmessageTypeIDとmessageTypeの内容を記載してapiを叩くとPostできます。
urlはhttps://<<Host>>/com.sap.iotservices.mms/v1/api/http/data/<<DeviceID>>
※<<Host>> : iotmms<UserID>trial.hanatrial.ondemand.com
$apiKey
=
"<<トークン>>"
$headers
= @{
"Authorization"
=
"Bearer "
+
$apikey
}
$url
=
"https://<<Host>>/com.sap.iotservices.mms/v1/api/http/data/<<デバイスID>>"
$ContentType
=
"application/json;charset=utf-8"
Invoke-RestMethod
-Uri
$url
-ContentType
$ContentType
-inFile
.\PostiOSMessageType.json
-headers
$headers
-Method
Post
※<<Host>> : iotmms<UserID>trial.hanatrial.ondemand.com
PostiOSMessageType.jsonの中身
{
"mode"
:
"sync"
,
"messageType"
:
"<<MessageTypeID>>"
,
"messages"
:[{
"accelerometerx"
: -0.3770751906558871,
"audio"
: 0.09188157,
"gyroscopez"
: 1.544760227203369,
"timestamp"
: 1494563020,
"longitude"
: 139.7731828210429,
"latitude"
: 35.68286075814957,
"gyroscopey"
: -18.41705703735352,
"accelerometerz"
: 0.1894988976418972,
"accelerometery"
: -0.416412353515625,
"altitude"
: 26.9791316986084,
"device"
:
"PostTestDevice"
,
"gyroscopex"
: 8.429008483886719
}]
}
GET
下記のようにSユーザとパスワードで認証を行いapiにクエリを投げるとxml形式でデータの取得ができます。
$user
=
"Sユーザ"
$pass
=
"パスワード"
#認証情報処理
$pair
=
"${user}:${pass}"
$bytes
=
[System.Text.Encoding]
::ASCII.GetBytes(
$pair
)
$base64
=
[System.Convert]
::ToBase64String(
$bytes
)
$basicAuthValue
=
"Basic $base64"
$headers
= @{ Authorization =
$basicAuthValue
}
$url
=
"https://<<Host>>/com.sap.iotservices.mms/v1/api/http/app.svc/<<TableName>>"
$query
=
"?`$top=2"
#APIでテーブル取得
$getData
=
Invoke-RestMethod
-uri
"$url$query"
-Headers
$headers
※<<Host>> : iotmms<UserID>trial.hanatrial.ondemand.com
※<<TableName>> : T_IOT_~~~
今回は誰でも使えるPowershellベースの説明でしたが、ここまでわかってしまえばSensorPhoneのような専用アプリがなくても、SAP CPにつなげられますね。
- カテゴリー