
本記事は、下記のデモ作成時に作成されたテーブルを例にしています。
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-url $url-ContentType-inFile.¥PostOSMessageType.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につなげられますね。