LoginSignup
1
3

More than 3 years have passed since last update.

Callbackに失敗したメッセージをSigfox APIで取得する方法

Posted at

Sigfoxを使ったアプリケーション運用において、SigfoxクラウドまではIoTデバイスからのメッセージが到達しているものの、Callbackに失敗して、ご自身のアプリケーションサーバまでメッセージが届かなかったというケースがあるかと思います。
image.png

そのような場合に、Device Messageのリストを取得するAPI/devices/{id}/messagesを使って、Callbackに成功しているメッセージも含めて取得することも可能ですが、処理の複雑性も考えるとおすすめできません。
そのような場合におすすめなのは、DeviceTypesのAPIにある"Retrieve a list of callback errors"です。

/device-types/{id}/callbacks-not-delivered

このAPIは、Callbackに失敗したメッセージのみを取得するものです。
{id}には該当デバイスが属するDeviceType IDを入れ、since,beforeパラメータによる取得時刻の範囲指定や、offsetパラメータの指定が可能です。

動作確認

下記GETリクエストを、Basic認証付きで送ります。
https://api.sigfox.com/v2/device-types/{id}/callbacks-not-delivered
成功すると、200応答とともに下記ようなのJSONメッセージを取得できます。

response.json
{
    "data": [
        {
            "deviceId": "1234AB",
            "deviceTypeId": "5c187c222564327e8xxxxxxx",
            "snr": 22.19,
            "time": 1568980330000,
            "date": "2019-09-20 20:52:10",
            "data": "0b7527bf052bffa9000403f5",
            "status": 404,
            "message": "Not Found",
            "callback": {
                "url": "https://foo.com/api/dataadvanceda",
                "headers": {
                },
                "method": "POST",
                "contentType": "application/json",
                "body": {
                    "device": "1234AB",
                    "time": 1568980330,
                    "data": "0b7527bf052bffa9000403f5",
                    "seqNumber": 110,
                    "lqi": "3",
                    "devicetype_id": "5c187c222564327e8xxxxxxx",
                    "group_id": "566ea3e09336a8059xxxxxxx"
                }
            },
            "parameters": {}
        }
    ],
    "paging": {}
}

data->callback->bodyを参照することにより、デバイスID、受信時刻、ペイロード他をAPIで取得することができます。
アプリケーションサーバ内のデータインテグリティを意識される方は是非お試しください。

Sigfox Japan KCCS

1
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
3