LINE Things APIリファレンス

LINE Things API

デバイスIDを指定して、プロダクトIDとPSDIを取得する

デバイスIDを指定して、プロダクトIDとPSDIを取得します。デバイス連携イベントやデバイス連携解除イベントで取得したデバイスIDから、プロダクトIDとPSDIを取得するときに使います。

デバイスID、プロダクトID、PSDIについては、「IDについて」を参照してください。

HTTPリクエスト

GET https://api.line.me/things/v1/devices/{deviceId}

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {channel access token}

パスパラメータ

パラメータ 説明
deviceId デバイスID

リクエストの例

curl -X GET https://api.line.me/things/v1/devices/{deviceId} \
-H "Authorization: Bearer {channel access token}"

レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

プロパティ タイプ 説明
id String デバイスID
productId String プロダクトID
productSpecificDeviceId String PSDI

エラーレスポンス

以下のいずれかのステータスコードを返します。

ステータスコード 説明
401 認証に失敗しました。
404 以下のどちらかです。
  • デバイスが見つかりません。
  • アクセス権がありません。

レスポンスの例

{
  "id": "{deviceId}",
  "productId": "{productId}",
  "productSpecificDeviceId": "{PSDI}"
}

プロダクトIDとユーザーIDを指定して、デバイスの情報を取得する

プロダクトIDとユーザーIDを指定して、デバイスの情報を取得します。

HTTPリクエスト

GET https://api.line.me/things/v1/products/{productId}/users/{userId}/links

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {channel access token}

パスパラメータ

パラメータ 説明
productId プロダクトID
userId ユーザーID。ユーザーIDの値は、U[0-9a-f]{32}の正規表現にマッチする文字列です。

リクエストの例

curl -X GET https://api.line.me/things/v1/products/{productId}/users/{userId}/links \
-H "Authorization: Bearer {channel access token}"

レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

プロパティ タイプ 説明
items[].userId String ユーザーID
ユーザーIDの値は、U[0-9a-f]{32}の正規表現にマッチする文字列です。
items[].device.id String デバイスID
items[].device.productId String プロダクトID
items[].device.productSpecificDeviceId String PSDI
items[].deviceDisplayName String プロダクト名

エラーレスポンス

以下のいずれかのステータスコードを返します。

ステータスコード 説明
401 認証に失敗しました。
404 以下のどちらかです。
  • デバイスが見つかりません。
  • アクセス権がありません。

レスポンスの例

{
  "items": [
    {
      "userId": "{userId}",
      "device": {
        "id": "{deviceId}",
        "productId": "{productId}",
        "productSpecificDeviceId": "{PSDI}"
      },
      "deviceDisplayName": "{Product Name}"
    },
    {
      "userId": "{userId}",
      "device": {
        "id": "{deviceId}",
        "productId": "{productId}",
        "productSpecificDeviceId": "{PSDI}"
      },
      "deviceDisplayName": "{Product Name}"
    }
  ]
}

トライアルプロダクト情報を作成する

Bluetooth® Low Energy対応デバイスをLINE Things Developer Trialで利用するために、LINEプラットフォームにトライアルプロダクト情報を作成し、プロダクト情報として登録します。この操作によって、トライアルプロダクト情報とMessaging APIのチャネルが関連付けられます。

注:チャネルごとに最大10個のトライアルプロダクト情報を作成できます。

HTTPリクエスト

POST https://api.line.me/things/v1/trial/products

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {channel access token}
Content-Type application/json

リクエストボディ

フィールド タイプ 説明
name String プロダクト名
liffId String 作成するトライアルプロダクト情報に関連付けるLIFFアプリID

リクエストの例

curl -X POST https://api.line.me/things/v1/trial/products \
-H "Authorization: Bearer {channel access token}" \
-H "Content-Type: application/json" \
-d '{
  "name": "{trial product name}",
  "liffId": "{LIFF APP ID}"
}'

レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

プロパティ タイプ 説明
id String プロダクトID
name String プロダクト名
type String プロダクトタイプ("BLE"のみ)
channelId Number トライアルプロダクト情報に関連付けられているMessaging APIのチャネルのチャネルID
actionUri String LIFFアプリのURL
serviceUuid String サービス探索用service UUID ※
このUUIDは、自動採番されます。
psdiServiceUuid String デバイス特定用service UUID ※
psdiCharacteristicUuid String デバイス特定用characteristic UUID ※

※これらの値は、デバイスおよびLIFFアプリに書き込みます。詳しくは、「デバイスを作成する」および「LIFFアプリを完成させる」を参照してください。

エラーレスポンス

以下のいずれかのステータスコードを返します。

ステータスコード 説明
400 リクエストに無効な値が含まれています。
401 認証に失敗しました。
403 すでにトライアルプロダクト情報の上限個数(最大10個)に達しています。不要なトライアルプロダクト情報を削除してください。

レスポンスの例

{
  "id": "{productId}",
  "name": "{trial product name}",
  "type": "BLE",
  "channelId": {channelId},
  "actionUri": "{LIFF APP URL}",
  "serviceUuid": "{serviceUuid}",
  "psdiServiceUuid": "{psdiServiceUuid}",
  "psdiCharacteristicUuid": "{psdiCharacteristicUuid}"
}

トライアルプロダクト情報を取得する

作成済みのトライアルプロダクト情報を取得します。

HTTPリクエスト

GET https://api.line.me/things/v1/trial/products

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {channel access token}

リクエストの例

curl -X GET https://api.line.me/things/v1/trial/products \
-H "Authorization: Bearer {channel access token}"

レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

プロパティ タイプ 説明
[].id String プロダクトID
[].name String プロダクト名
[].actionUri String LIFFアプリのURL
[].channelId Number トライアルプロダクト情報に関連付けられているMessaging APIのチャネルのチャネルID
[].type String プロダクトタイプ("BLE"のみ)
[].serviceUuid String サービス探索用service UUID
[].psdiServiceUuid String デバイス特定用service UUID
[].psdiCharacteristicUuid String デバイス特定用characteristic UUID

エラーレスポンス

以下のいずれかのステータスコードを返します。

ステータスコード 説明
401 認証に失敗しました。

レスポンスの例

[
  {
    "id": "{productId}",
    "name": "{trial product name}",
    "actionUri": "{LIFF APP URL}",
    "channelId": {channelId},
    "type": "BLE",
    "serviceUuid": "{serviceUuid}",
    "psdiServiceUuid": "{psdiServiceUuid}",
    "psdiCharacteristicUuid": "{psdiCharacteristicUuid}"
  }
]

トライアルプロダクト情報を削除する

プロダクトIDを指定して、トライアルプロダクト情報を削除します。

HTTPリクエスト

DELETE https://api.line.me/things/v1/trial/products/{productId}

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {channel access token}

パスパラメータ

パラメータ 説明
productId プロダクトID

レスポンス

ステータスコード204を返します。

エラーレスポンス

以下のいずれかのステータスコードを返します。

ステータスコード 説明
401 認証に失敗しました。
404 以下のどちらかです。
  • トライアルプロダクト情報が見つかりません。
  • アクセス権がありません。

リクエストの例

curl -X DELETE https://api.line.me/things/v1/trial/products/{productId} \
-H "Authorization: Bearer {channel access token}"

自動通信向けシナリオ管理API

シナリオセットを作成または更新する

自動通信のシナリオセットを、プロダクト情報に登録(作成または更新)します。

HTTPリクエスト

PUT https://api.line.me/things/v1/products/{productId}/scenario-set

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {channel access token}
Content-Type application/json

パスパラメータ

パラメータ 説明
productId プロダクトID

リクエストボディ

フィールド タイプ 説明
autoClose Boolean シナリオセット内のすべての実行中シナリオを実行後に、デバイスとの接続を切断するかどうかを指定します。falseの場合、デバイスとの接続を維持します。このパラメータの利用には注意点があります。詳しくは、『LINE Thingsドキュメント』の「自動通信を利用する際の注意点について」を参照してください。
suppressionInterval Number autoClose = trueを設定した場合は、自動通信による接続が切断されたあとに、デバイスとの再接続を抑制する時間(ミリ秒)を設定します。ただし、設定した時間間隔で再接続されることは保証しません。プログラムの実行環境によって、再接続される時間が大きく変動することがあります。
autoClose = falseを設定した場合は、0に設定します。
scenarios Array シナリオの配列
シナリオ(Scenario)
フィールド タイプ 説明
id String シナリオID
シナリオセットの作成時および更新時は必要ありません。
trigger Object 実行の起点
trigger.type String
  • IMMEDIATE:デバイスとLINEが接続されると、すぐにアクションを実行する
  • BLE_NOTIFICATION:指定したGATT characteristicの通知を受けたときに、アクションを実行する
trigger.serviceUuid String 通知を待ち受けるGATT service UUID(128ビット)
trigger.type = BLE_NOTIFICATIONの場合にのみ設定します。
trigger.characteristicUuid String 通知を待ち受けるGATT characteristic UUID(128ビット)
trigger.type = BLE_NOTIFICATIONの場合にのみ設定します。
actions[] Array 実行内容(Action)の配列
デバイスから通知されたデータを取得するだけの場合など、actionが空の場合もあります。
actions[].type String アクションのタイプ
  • SLEEP:一定時間待つ
  • GATT_READ:指定したGATT characteristicからデータを取得する
  • GATT_WRITE:指定したGATT characteristicにデータを書き込む
actions[].sleepMillis Number アクション:SLEEPの待機時間
ただし、設定した時間間隔でSLEEPが解除されることは保証しません。プログラムの実行環境によって、待機時間が大きく変動することがあります。
actions[].typeSLEEPの場合にのみ設定します。
actions[].serviceUuid String データを読み書きするGATT characteristicを含むGATT service UUID(128ビット)
actions[].typeGATT_READまたはGATT_WRITEの場合にのみ設定します。
actions[].characteristicUuid String データを読み書きするGATT characteristic UUID(128ビット)
actions[].typeGATT_READまたはGATT_WRITEの場合にのみ設定します。
actions[].data String Base64形式でエンコードされたデータ
actions[].typeGATT_WRITEの場合にのみ設定します。

リクエストの例

curl -X PUT https://api.line.me/things/v1/products/{productId}/scenario-set \
-H "Authorization: Bearer {channel access token}" \
-H "Content-Type: application/json" \
-d '{
  "autoClose": false,
  "suppressionInterval": 0,
  "scenarios": [
    {
      "trigger": {
        "type": "BLE_NOTIFICATION",
        "serviceUuid": "4812a0a6-10af-4afb-91f0-b4434e55763b",
        "characteristicUuid": "91a6fb1d-d365-4229-9d41-4358a96388e3"
      },
      "actions": [
        {
          "type": "SLEEP",
          "sleepMillis": 1000
        },
        {
          "type": "GATT_READ",
          "serviceUuid": "4812a0a6-10af-4afb-91f0-b4434e55763b",
          "characteristicUuid": "91a6fb1d-d365-4229-9d41-4358a96388e3"
        },
        {
          "type": "GATT_WRITE",
          "serviceUuid": "4812a0a6-10af-4afb-91f0-b4434e55763b",
          "characteristicUuid": "91a6fb1d-d365-4229-9d41-4358a96388e3",
          "data": "Zm9vCg=="
        }
      ]
    }
  ]
}'

レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

プロパティ タイプ 説明
productId String プロダクトID
autoClose Boolean シナリオセット内のすべての実行中シナリオを実行後に、デバイスとの接続を切断するかどうかを表します。falseの場合、デバイスとの接続を維持します。このパラメータの利用には注意点があります。詳しくは、『LINE Thingsドキュメント』の「自動通信を利用する際の注意点について」を参照してください。
suppressionInterval Number 自動通信による接続が切断されたあとに、デバイスとの再接続を抑制する時間(ミリ秒)を表します。
ただし、設定した時間間隔で再接続されることは保証しません。プログラムの実行環境によって、再接続される時間が大きく変動することがあります。
revision Number シナリオセットの現在のリビジョン。修正ごとに自動的に増加されます。
scenarios Array シナリオの配列
createdAt Number シナリオセットが作成された日時
updatedAt Number シナリオセットが更新された日時

エラーレスポンス

以下のいずれかのステータスコードを返します。

ステータスコード 説明
400 リクエストに無効な値が含まれています。
401 認証に失敗しました。
404 以下のどちらかです。
  • プロダクト情報が見つかりません。
  • アクセス権がありません。

レスポンスの例

{
  "productId": "0",
  "autoClose": false,
  "suppressionInterval": 0,
  "revision": 123,
  "scenarios": [
    {
      "id": "01CGZVT9XTWA8Q2Z8QSX0B0EH8",
      "trigger": {
        "type": "BLE_NOTIFICATION",
        "serviceUuid": "4812a0a6-10af-4afb-91f0-b4434e55763b",
        "characteristicUuid": "91a6fb1d-d365-4229-9d41-4358a96388e3"
      },
      "actions": [
        {
          "type": "SLEEP",
          "sleepMillis": 1000
        },
        {
          "type": "GATT_READ",
          "serviceUuid": "4812a0a6-10af-4afb-91f0-b4434e55763b",
          "characteristicUuid": "91a6fb1d-d365-4229-9d41-4358a96388e3"
        },
        {
          "type": "GATT_WRITE",
          "serviceUuid": "4812a0a6-10af-4afb-91f0-b4434e55763b",
          "characteristicUuid": "91a6fb1d-d365-4229-9d41-4358a96388e3",
          "data": "Zm9vCg=="
        }
      ]
    }
  ],
  "createdAt": "2018-04-12T23:20:50.52Z",
  "updatedAt": "2018-04-12T23:20:50.52Z"
}

シナリオセットを取得する

プロダクト情報に登録されているシナリオセットを取得します。

HTTPリクエスト

GET https://api.line.me/things/v1/products/{productId}/scenario-set

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {channel access token}

パスパラメータ

パラメータ 説明
productId プロダクトID

リクエストの例

curl -X GET https://api.line.me/things/v1/products/{productId}/scenario-set \
-H "Authorization: Bearer {channel access token}"

レスポンス

ステータスコード200と以下のプロパティを含むJSONオブジェクトを返します。

プロパティ タイプ 説明
productId String プロダクトID
autoClose Boolean シナリオセット内のすべての実行中シナリオを実行後に、デバイスとの接続を切断するかどうかを表します。falseの場合、デバイスとの接続を維持します。このパラメータの利用には注意点があります。詳しくは、『LINE Thingsドキュメント』の「自動通信を利用する際の注意点について」を参照してください。
suppressionInterval Number 自動通信による接続が切断されたあとに、デバイスとの再接続を抑制する時間(ミリ秒)を表します。
ただし、設定した時間間隔で再接続されることは保証しません。プログラムの実行環境によって、再接続される時間が大きく変動することがあります。
revision Number シナリオセットの現在のリビジョン。修正ごとに自動的に増加されます。
scenarios Array シナリオの配列
createdAt Number シナリオセットが作成された日時
updatedAt Number シナリオセットが更新された日時

エラーレスポンス

以下のいずれかのステータスコードを返します。

ステータスコード 説明
401 認証に失敗しました。
404 以下のどちらかです。
  • プロダクト情報が見つかりません。
  • アクセス権がありません。

レスポンスの例

{
  "productId": "0",
  "autoClose": false,
  "suppressionInterval": 0,
  "revision": 123,
  "scenarios": [
    {
      "id": "01CGZVT9XTWA8Q2Z8QSX0B0EH8",
      "trigger": {
        "type": "BLE_NOTIFICATION",
        "serviceUuid": "4812a0a6-10af-4afb-91f0-b4434e55763b",
        "characteristicUuid": "91a6fb1d-d365-4229-9d41-4358a96388e3"
      },
      "actions": [
        {
          "type": "SLEEP",
          "sleepMillis": 1000
        },
        {
          "type": "GATT_READ",
          "serviceUuid": "4812a0a6-10af-4afb-91f0-b4434e55763b",
          "characteristicUuid": "91a6fb1d-d365-4229-9d41-4358a96388e3"
        },
        {
          "type": "GATT_WRITE",
          "serviceUuid": "4812a0a6-10af-4afb-91f0-b4434e55763b",
          "characteristicUuid": "91a6fb1d-d365-4229-9d41-4358a96388e3",
          "data": "Zm9vCg=="
        }
      ]
    }
  ],
  "createdAt": "2018-04-12T23:20:50.52Z",
  "updatedAt": "2018-04-12T23:20:50.52Z"
}

シナリオセットを削除する

プロダクト情報に登録されているシナリオセットを削除します。

HTTPリクエスト

DELETE https://api.line.me/things/v1/products/{productId}/scenario-set

リクエストヘッダー

リクエストヘッダー 説明
Authorization Bearer {channel access token}

パスパラメータ

パラメータ 説明
productId プロダクトID

レスポンス

ステータスコード204を返します。

エラーレスポンス

以下のいずれかのステータスコードを返します。

ステータスコード 説明
401 認証に失敗しました。
404 以下のどちらかです。
  • プロダクト情報が見つかりません。
  • アクセス権がありません。

リクエストの例

curl -X DELETE https://api.line.me/things/v1/products/{productId}/scenario-set \
-H "Authorization: Bearer {channel access token}"

{{ $t("form.question.helpful") }}

{{ $t("form.question.detail") }}

{{ $t("form.question.improve") }}

{{ $t("form.info.start") }}{{ $t("form.info.link") }}{{ $t("form.info.end") }}


{{ $t("form.result.success") }}
{{ $t("form.result.error") }}
{{ $t("form.result.errorLink") }}