# LINE Things APIリファレンス

# LINE Things API

iOS版LINEバージョン9.19.0以降ではLINE Thingsは使用できません

技術的な問題があり、iOS版LINEバージョン9.19.0以降では、LINE Thingsの提供を一時停止しています。

# デバイス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

# レスポンス

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

id

String

デバイスID

productId

String

プロダクトID

productSpecificDeviceId

String

PSDI

レスポンスの例

# エラーレスポンス

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

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

# プロダクト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}の正規表現にマッチする文字列です。

# レスポンス

ステータスコード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 以下のどちらかです。
  • デバイスが見つかりません。
  • アクセス権がありません。

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

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

必須

プロダクト名

# レスポンス

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

id

String

プロダクトID

name

String

プロダクト名

type

String

プロダクトタイプ("BLE"のみ)

channelId

Number

トライアルプロダクト情報に関連付けられているMessaging APIのチャネルのチャネルID

serviceUuid

String

サービス探索用service UUID ※
このUUIDは、自動採番されます。

psdiServiceUuid

String

デバイス特定用service UUID ※

psdiCharacteristicUuid

String

デバイス特定用characteristic UUID ※

※これらの値は、デバイスに書き込みます。詳しくは、「デバイスを作成する」を参照してください。

レスポンスの例

# エラーレスポンス

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

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

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

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

リクエストの例

# HTTPリクエスト

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

# リクエストヘッダー

Authorization

Bearer {channel access token}

# レスポンス

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

[].id

String

プロダクトID

[].name

String

プロダクト名

[].channelId

Number

トライアルプロダクト情報に関連付けられているMessaging APIのチャネルのチャネルID

[].type

String

プロダクトタイプ("BLE"のみ)

[].serviceUuid

String

サービス探索用service UUID

[].psdiServiceUuid

String

デバイス特定用service UUID

[].psdiCharacteristicUuid

String

デバイス特定用characteristic UUID

レスポンスの例

# エラーレスポンス

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

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

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

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

リクエストの例

# HTTPリクエスト

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

# リクエストヘッダー

Authorization

Bearer {channel access token}

# パスパラメータ

productId

プロダクトID

# レスポンス

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

# エラーレスポンス

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

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

# 自動通信向けシナリオ管理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の場合にのみ設定します。

# レスポンス

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

productId

String

プロダクトID

autoClose

Boolean

シナリオセット内のすべての実行中シナリオを実行後に、デバイスとの接続を切断するかどうかを表します。falseの場合、デバイスとの接続を維持します。このパラメータの利用には注意点があります。詳しくは、『LINE Thingsドキュメント』の「自動通信を利用する際の注意点について」を参照してください。

suppressionInterval

Number

自動通信による接続が切断されたあとに、デバイスとの再接続を抑制する時間(ミリ秒)を表します。
ただし、設定した時間間隔で再接続されることは保証しません。プログラムの実行環境によって、再接続される時間が大きく変動することがあります。

revision

Number

シナリオセットの現在のリビジョン。修正ごとに自動的に増加されます。

scenarios

Array

シナリオの配列

createdAt

Number

シナリオセットが作成された日時

updatedAt

Number

シナリオセットが更新された日時

レスポンスの例

# エラーレスポンス

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

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

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

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

リクエストの例

# HTTPリクエスト

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

# リクエストヘッダー

Authorization

Bearer {channel access token}

# パスパラメータ

productId

プロダクトID

# レスポンス

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

productId

String

プロダクトID

autoClose

Boolean

シナリオセット内のすべての実行中シナリオを実行後に、デバイスとの接続を切断するかどうかを表します。falseの場合、デバイスとの接続を維持します。このパラメータの利用には注意点があります。詳しくは、『LINE Thingsドキュメント』の「自動通信を利用する際の注意点について」を参照してください。

suppressionInterval

Number

自動通信による接続が切断されたあとに、デバイスとの再接続を抑制する時間(ミリ秒)を表します。
ただし、設定した時間間隔で再接続されることは保証しません。プログラムの実行環境によって、再接続される時間が大きく変動することがあります。

revision

Number

シナリオセットの現在のリビジョン。修正ごとに自動的に増加されます。

scenarios

Array

シナリオの配列

createdAt

Number

シナリオセットが作成された日時

updatedAt

Number

シナリオセットが更新された日時

レスポンスの例

# エラーレスポンス

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

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

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

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

リクエストの例

# HTTPリクエスト

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

# リクエストヘッダー

Authorization

Bearer {channel access token}

# パスパラメータ

productId

プロダクトID

# レスポンス

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

# エラーレスポンス

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

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