目次
本記事は、下記のデモ作成時に作成されたテーブルを例にしています。
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につなげられますね。
- カテゴリー