メインコンテンツまでスキップ

CWS APIリファレンス (1.0)

Download OpenAPI specification:Download

CWS APIのAPI外形を定義します。

利用者様THINKLETアプリからのファイルアップロードについて

THINKLETにインストールされた利用者様アプリのデータを、利用者様指定の保存先にアップロードするために、Amazon S3の署名付きURL取得URL、及びイベント通知先URLを利用者様でご用意ください。

利用者様で用意いただいた各URLを利用して、CWS APIでは次の処理を行います。

データをアップロードするため、下記で設定されたURLに対して署名付きURL発行を依頼します

  • fileUploadGetUrl(ファイルアップロード用署名付きURL取得URL)

アップロードの成功/失敗は、下記で設定されたURLに対して通知します

  • fileUploadEvent (ファイルアップロード用イベント通知先URL)

ファイルアップロード利用の詳細に関しては、ファイルアップロード用署名付きURL取得を参照ください。

通知・アクセス設定、authenticationKeyを発行する で登録・更新できる設定値について

通知・アクセス設定authenticationKeyを発行するで必要な設定が行われていない場合、一部機能が利用できなくなります。
それぞれの設定値と制限がかかる機能は以下となります。

  • authenticationKey
    • この設定は、多くの機能で使用しています。
      未設定の場合、殆どの機能が利用できないため、必ずauthenticationKeyを発行するを行ってください。
      この設定は、CWS APIを安全にご利用いただくために、Webhookによる通知の検証に使用します。詳しくはauthenticationKeyの利用方法を参照してください。
  • deviceEvent
    • この設定は、端末で発生したイベントを送信、トランザクションの端末側実行結果の通知に使用しています。
      未設定の場合、トランザクションを発行するAPIと端末で発生したイベントの通知は利用できません。
  • remoteSupportEvent
    • 現在使用していない設定です。
      未設定の場合に使えなくなる機能はありません。
  • soraEvent
    • この設定は、通話で発生したイベントの送信に使用しています。
      未設定の場合、通話は行うことができますが、通話で発生したイベントが通知されません。
  • soraFileSendEvent
    • この設定は、録画データ保存結果の通知に使用しています。
      未設定の場合、録画データがアップロードされません。
  • soraRecGetPresignedUrl
    • この設定は、録画データ保存時の署名付きURL取得に使用しています。
      この設定とsoraRecGetMultiPresignedUrl のどちらも未設定の場合、録画データがアップロードされません。
  • soraRecGetMultiPresignedUrl
    • この設定は、録画データ保存時の署名付きURL取得に使用しています。
      この設定とsoraRecGetPresignedUrl のどちらも未設定の場合、録画データがアップロードされません。
  • fileUploadEvent
    • この設定は、ファイルアップロードイベントの通知に使用しています。
      未設定の場合、ファイルアップロード機能は利用できません。
  • fileUploadGetUrl
    • この設定は、ファイルアップロード機能の署名付きURL取得に使用しています。
      未設定の場合、ファイルアップロード機能は利用できません。

Connectivityの各APIの利用について

Connectivity の各APIは、下記バージョン以降のmdmclientに対応しています。

  • mdmclient versionName : 2.3.1以上(Fw 9.001.0以上)

THINKLETのmdmclientが上記のバージョン未満の場合、正常に動作しません。
上記バージョン未満のmdmclientがインストールされているTHINKLETに対して、Connectivityの各APIを実行した場合は、トランザクションが未処理のままとなってしまうため、トランザクションをキャンセルするを実行して、トランザクションをキャンセルしてください。

THINKLETとBluetoothデバイスとのペアリング方法

Bluetooth/ネットワークの種別(type)を指定する各API について

  • 現在は Bluetooth のみ対応しています。
  • 当面は Bluetooth/ネットワークの種別 に wifi, mobile が指定された場合、400エラーを返却します。

Config

Config Apis

通知・アクセス設定内容取得

自身のアプリケーションIDに紐づくシステム連携設定を取得します。

特記事項

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/applications.r
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
{}

通知・アクセス設定

自身のアプリケーションに対するシステム連携情報を登録・更新します。

特記事項

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/applications.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

header Parameters
Authorization
string
Request Body schema: application/json
deviceEvent
string <= 255 characters https?://.*

デバイスイベント通知先URL

remoteSupportEvent
string <= 255 characters https?://.*

遠隔支援イベント通知先URL

soraEvent
string <= 255 characters https?://.*

Soraイベント通知先URL

soraFileSendEvent
string <= 255 characters https?://.*

Sora録画データ通知先URL

soraRecGetPresignedUrl
string <= 255 characters https?://.*
Deprecated

録画データ(Sora)用署名付きURL取得URL(非推奨)

soraRecGetMultiPresignedUrl
string <= 255 characters https?://.*

録画データ(Sora)用署名付きURL取得URL(マルチパート対応)

fileUploadEvent
string <= 255 characters https?://.*

ファイルアップロードイベント通知先URL

fileUploadGetUrl
string <= 255 characters https?://.*

ファイルアップロード先URL取得URL

Responses

Request samples

Content type
application/json
{}

authenticationKeyを発行する

自身のアプリケーションIDに紐づくauthenticationKeyを発行する

特記事項

  • 本APIを実行することで、authenticationKey が発行されます。
    • authenticationKeyを未発行である場合、新規発行されます。
    • authenticationKeyを発行済である場合、既存Keyは無効となり、新規発行Keyが有効となります。
  • 発行済みのauthenticationKeyを取得する場合は、通知・アクセス設定内容取得を利用してください

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/applications.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
{
  • "authenticationKey": "XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
}

Device

Device(& Hardware Properties) Apis

デバイスのアクティベート状態を取得する

概要

本APIはデバイスのアクティベート・ディアクティベート状態を取得するAPIです。Path Parameters で指定されたアプリケーションに対し、デバイスがアクティベートされていた場合 statusactivatedclientIdはmimiのクライアントIDとなります。デバイスがデベロッパーに紐づいているかつ、デベロッパー内のどのアプリケーションにも紐づいていない場合、deactivated となります。他のapplicationでactivateされている場合はHTTP 403を返却します。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.r
Authorizations:
mimiAccessToken
path Parameters
deviceId
required
string

THINKLETのIMEI番号

applicationId
required
string

mimiで登録されるアプリケーションID

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
Example
{
  • "status": "activated",
  • "clientId": "123e8f0fd2c044ef9074ef0b84d1cf88"
}

デバイスをアクティベートする

デバイスをアクティベートします。

CWS APIの利用申込みを実施していない場合や、本API実行時のアクティベート数が、申込みしたTHINKLETの台数に達していた場合、本APIでエラーを返却します。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
deviceId
required
string

THINKLETのIMEI番号

applicationId
required
string

mimiで登録されるアプリケーションID

header Parameters
Authorization
string
Request Body schema: application/json
mimiClientId
string
mimiClientSecret
string

Responses

Request samples

Content type
application/json
{
  • "mimiClientId": "string",
  • "mimiClientSecret": "string"
}

Response samples

Content type
application/json
{
  • "transactionId": 1
}

デバイスをディアクティベートする

デバイスをディアクティベートします。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
deviceId
required
string

THINKLETのIMEI番号

applicationId
required
string

mimiで登録されるアプリケーションID

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
{
  • "transactionId": 1
}

デバイス状態取得

デバイスの状態を取得します。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.r

補足

  • lang
    • 端末に設定されている言語設定を返却します。形式の詳細は言語設定をするを参照してください。
Authorizations:
mimiAccessToken
path Parameters
deviceId
required
string

THINKLETのIMEI

applicationId
required
string

mimiで登録されるアプリケーションID

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
{
  • "power": "started",
  • "powerUpdateDate": "2024-10-24T14:15:22.123456",
  • "wearing": "device_wear",
  • "wearingUpdateDate": "2024-10-24T14:15:22.123456",
  • "network": "connectivity_online",
  • "networkUpdateDate": "2024-10-24T14:15:22.123456",
  • "charging": "stop_charging",
  • "chargingUpdateDate": "2024-10-24T14:15:22.123456",
  • "batteryPercentage": 89,
  • "batteryUpdateDate": "2024-10-24T14:15:22.123456",
  • "latitude": 35.6809591,
  • "longitude": 139.7673068,
  • "locationUpdateDate": "2024-10-24T14:15:22.123456",
  • "firmware": {
    },
  • "app": [
    ],
  • "lang": [
    ]
}

デバイス状態の一覧を取得

指定したアプリケーションIDに属するデバイスの状態の一覧を取得します。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.r

補足

  • lang
    • 端末に設定されている言語設定を返却します。形式の詳細は言語設定をするを参照してください。
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
[
  • {
    }
]

デバイスのハードウェアプロパティを取得する

概要

本APIは、指定したdeviceIdのハードウェアプロパティを取得するAPIです。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.r
Authorizations:
mimiAccessToken
path Parameters
deviceId
required
string

THINKLETのIMEI

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
Example
{
  • "deviceId": "123456789012345",
  • "model": {
    },
  • "camera": [
    ],
  • "macAddressWifi": "0a:1b:2c:3d:4e:5f",
  • "macAddressBluetooth": "9a:8b:7c:6d:5e:4f"
}

Network

Network Apis

APNの設定をする

指定したデバイスのAPN設定情報を更新します。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
deviceId
required
string

THINKLETのIMEI

applicationId
required
string

mimiで登録されるアプリケーションID

header Parameters
Authorization
string
Request Body schema: application/json
Array
name
required
string [ 1 .. 100 ] characters
apn
required
string [ 1 .. 100 ] characters
proxy
string <= 100 characters
port
string <= 100 characters
user
string <= 100 characters
server
string <= 100 characters
password
string
mmsc
string <= 100 characters
mcc
required
string [ 1 .. 100 ] characters
mnc
required
string [ 1 .. 100 ] characters
mmsproxy
string <= 100 characters
mmsport
string <= 100 characters
authType
integer
type
string <= 100 characters
protocol
string <= 100 characters
carrierEnabled
string <= 100 characters
bearer
integer
bearerBitmask
integer
roamingProtocol
string <= 100 characters
mvnoType
string <= 100 characters
mvnoMatchData
string <= 100 characters

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "transactionId": 1
}

Wi-Fiを設定する

指定したデバイスのWi-Fi情報を更新します。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

deviceId
required
string

THINKLETのIMEI

header Parameters
Authorization
string
Request Body schema: application/json
Array
ssid
required
string <= 32 characters ^[a-zA-Z0-9!-/:-@\[-`{-~]+
password
string
security
string <= 100 characters ^[a-zA-Z0-9!-/:-@¥[-`{-~]*$

暗号化方式

Responses

Request samples

Content type
application/json
[
  • {
    }
]

Response samples

Content type
application/json
{
  • "transactionId": 1
}

Connectivity

Connectivity Apis

Bluetoothデバイス/ネットワークの一覧を取得する

概要

Bluetoothデバイス/ネットワーク一覧を取得します。

  • 当面は Bluetooth のみの対応となるため type に wifi, mobile が指定された場合、400エラーを返却します。
  • 当APIの利用にあたっての留意事項は、Connectivityの各APIの利用についてを参照してください。

取得結果について

本APIの取得結果は、トランザクション結果通知(Bluetoothデバイス/ネットワークの一覧を取得) で通知します。

本APIで取得できる一覧は以下で、target によって取得対象を指定します。 target の指定がない場合、取得対象は available になります。

  • all: 本APIの要求を受け付けた時点で、THINKLETに登録済み(接続中含む) および 検出可能なBluetoothデバイス/ネットワーク
  • connected: 本APIの要求を受け付けた時点で、THINKLETに接続中のBluetoothデバイス/ネットワーク
  • available: 本APIの要求を受け付けた時点で、THINKLETに登録済み(接続中含む)のBluetoothデバイス/ネットワーク

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.r
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

deviceId
required
string

THINKLETのIMEI

type
required
string
Enum: "bluetooth" "wifi" "mobile"

Bluetooth/ネットワークの種別

query Parameters
target
string
Enum: "all" "connected" "available"

Bluetoothデバイス/ネットワークの取得対象

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
{
  • "transactionId": 1
}

Bluetooth/ネットワークのON/OFF状態を取得する

概要

Bluetooth/ネットワークのON/OFF状態を取得します。

  • 当面は Bluetooth のみの対応となるため type に wifi, mobile が指定された場合、400エラーを返却します。
  • 当APIの利用にあたっての留意事項は、Connectivityの各APIの利用についてを参照してください。

取得結果について

本APIの取得結果は、トランザクション結果通知(Bluetooth/ネットワークのON/OFF状態を取得、変更する) で通知します。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.r
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

deviceId
required
string

THINKLETのIMEI

type
required
string
Enum: "bluetooth" "wifi" "mobile"

Bluetooth/ネットワークの種別

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
{
  • "transactionId": 1
}

Bluetooth/ネットワークのON/OFF状態を変更する

概要

Bluetooth/ネットワークのON/OFF状態を変更します。

  • 当面は Bluetooth のみの対応となるため type に wifi, mobile が指定された場合、400エラーを返却します。
  • 当APIの利用にあたっての留意事項は、Connectivityの各APIの利用についてを参照してください。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

deviceId
required
string

THINKLETのIMEI

type
required
string
Enum: "bluetooth" "wifi" "mobile"

Bluetooth/ネットワークの種別

header Parameters
Authorization
string
Request Body schema: application/json
state
required
string
Enum: "enabled" "disabled"

Responses

Request samples

Content type
application/json
{
  • "state": "enabled"
}

Response samples

Content type
application/json
{
  • "transactionId": 1
}

Bluetooth/ネットワークの設定を初期化する

概要

Bluetooth/ネットワークの設定を初期化します。

  • 当面は Bluetooth のみの対応となるため type に wifi, mobile が指定された場合、400エラーを返却します。
  • 当APIの利用にあたっての留意事項は、Connectivityの各APIの利用についてを参照してください。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

deviceId
required
string

THINKLETのIMEI

type
required
string
Enum: "bluetooth" "wifi" "mobile"

Bluetooth/ネットワークの種別

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
{
  • "transactionId": 1
}

Bluetoothデバイスのペアリングを行う

概要

Bluetoothデバイスをペアリングします。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

deviceId
required
string

THINKLETのIMEI

header Parameters
Authorization
string
Request Body schema: application/json
macAddress
required
string

Responses

Request samples

Content type
application/json
{
  • "macAddress": "00:1A:2B:3C:4D:5E"
}

Response samples

Content type
application/json
{
  • "transactionId": 1
}

ペアリング済みBluetoothデバイスを接続/切断する

概要

Bluetoothペアリング済みのデバイスを接続/切断します。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

deviceId
required
string

THINKLETのIMEI

header Parameters
Authorization
string
Request Body schema: application/json
macAddress
required
string
state
required
string
Enum: "connect" "disconnect"

Responses

Request samples

Content type
application/json
{
  • "macAddress": "9a:8b:7c:6d:5e:4f",
  • "state": "connect"
}

Response samples

Content type
application/json
{
  • "transactionId": 1
}

Bluetoothデバイスのペアリングを解除する

概要

Bluetoothデバイスのペアリングを解除します。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

deviceId
required
string

THINKLETのIMEI

header Parameters
Authorization
string
Request Body schema: application/json
macAddress
required
string

Responses

Request samples

Content type
application/json
{
  • "macAddress": "00:1A:2B:3C:4D:5E"
}

Response samples

Content type
application/json
{
  • "transactionId": 1
}

Update

FOTA & SOTA Apis

ソフトウェアをすぐにアップデートさせる

指定したアプリケーションを指定したデバイスにインストールします。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
deviceId
required
string

THINKLETのIMEI

applicationId
required
string

mimiで登録されるアプリケーションID

header Parameters
Authorization
string
Request Body schema: application/json
package
required
string

パッケージ名

version
required
string

バージョン

Responses

Request samples

Content type
application/json
{
  • "package": "ai.fd.thinklet.app.launcher",
  • "version": "0.2.2"
}

Response samples

Content type
application/json
{
  • "transactionId": 1
}

ファームウェアをすぐにアップデートさせる

指定したデバイスのファームウェアを更新させます。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
deviceId
required
string

THINKLETのIMEI

applicationId
required
string

mimiで登録されるアプリケーションID

header Parameters
Authorization
string
Request Body schema: application/json
version
required
string

ファームウェアのバージョン

Responses

Request samples

Content type
application/json
{
  • "version": "1.0.0"
}

Response samples

Content type
application/json
{
  • "transactionId": 1
}

ソフトウェアをアップロードするためのURLを作成する

概要

指定した内容でソフトウェアをアップロードするためのURL(Amazon S3 presigned URL)を作成して返却します。

指定したpackageとversionが未登録の場合、登録処理を行います。

指定のapplicationに対して、指定のpackageとversionの配信設定を行います。

ただし、packageが、以下に当てはまる場合は、受け付けません。

  • ai.fd で始まる
  • 異なるデベロッパーで利用されている

現状はmulti part に対応しておりません。

発行したAmazon S3 presigned URLへUploadを行う際、Content-Typeには application/vnd.android.package-archive を指定してください。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/applications.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

header Parameters
Authorization
string
Request Body schema: application/json
required
package
string

Upload対象のapplication package

version
string

Upload対象のapplication の versionCode

fileSize
integer >= 1

Upload対象のapplication の fileSize(byte)。1以上の値を指定

Responses

Request samples

Content type
application/json
{
  • "package": "ai.fd.thinklet.app.launcher",
  • "version": "1.0.0",
  • "fileSize": 123456789
}

Response samples

Content type
application/json
{}

Operation

Operation Apis

デバイスの初期化

指定したデバイスを初期化します。

このAPIを実行するとデバイスのデータが全て消え、出荷時の状態となります。

初期化されたデバイスは ソフトウェアをすぐにアップデートさせる でインストールされたアプリも削除されているため、再度APIを呼び出してインストールしてください。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

deviceId
required
string

THINKLETのIMEI

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
{
  • "transactionId": 1
}

言語設定をする

指定したデバイスの言語設定情報を変更します。

概要

本APIはデバイスのOS言語設定を変更することが可能です。

本APIでは Request Body に指定された言語コードが schemas の指定に基づいているかどうかのバリデーションのみを行っているため、リクエストされた言語コードが実際にデバイスに設定されるかどうかはトランザクション結果通知の通知内容を確認するようにしてください。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

deviceId
required
string

THINKLETのIMEI

header Parameters
Authorization
string
Request Body schema: application/json
required

言語設定

Array
string <= 8 characters ^[a-zA-Z0-9!-/:-@\[-`{-~]+

Responses

Request samples

Content type
application/json
[
  • "ja",
  • "en"
]

Response samples

Content type
application/json
{
  • "transactionId": 1
}

LauncherAppへのKey設定

概要

指定した key_config.json の内容で、指定デバイスへ設定要求を送信します。

Launcher規定のkey_configとフォーマットが異なる場合は本APIでエラーを返却します。

Launcherへの適用が完了した際に、トランザクション結果通知として通知します。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

deviceId
required
string

THINKLETのIMEI

header Parameters
Authorization
string
Request Body schema: application/json
required
  • Key設定の検査内容はLauncher規定の形式・必須Keyが存在するチェックまでとします。
required
Array of objects (KeyConfig)

各Key & ボタン操作の内容列挙

Array
key-name
required
string

対象のkey名。以下のいずれかを指定

  • left
    • ジェスチャセンサに最も近い位置にあるキー
  • center
    • 3つ並んだキーの真ん中にある小さな突起のついたキー
  • right
    • THINKLETロゴに最も近い位置にあるキー
key-event
required
string

イベント発生させるKeyEvent

  • first-pressed
    • ボタンが押下された瞬間に発生するイベント
  • single-released
    • 短押し
  • double-pressed
    • 2回押しの押し始めのイベント
  • double-released
    • 2回押しの2回目に離した時のイベント
  • long-pressed
    • 長押しイベント
  • long-released
    • 長押し(long-pressed)後にボタンが離された時のイベント
required
object (KeyAction)

Responses

Request samples

Content type
application/json
{
  • "key-config": [
    ]
}

Response samples

Content type
application/json
{
  • "transactionId": 1
}

デバイスでコマンドを実行させる

概要

THINKLETデバイス(以下、デバイス)にインストールされたご利用者様のアプリに対して、PackageやActivityを指定し、任意のコマンドを送る API です。 本APIを利用することで、CWS API経由でのアプリ起動などが実現可能です。

本APIは、例えばadbコマンド経由でForegroundServiceを起動する下記コマンドをRemote経由で、実行するイメージとなります。

adb shell am start-foreground-service -n com.example.myapp/.services.MyService

デバイスにご利用者様アプリをインストールする方法は、下記 API を参照ください。

コマンド実行結果の通知について

本APIのリクエスト body で指定した内容をデバイスで実行し、Webhook(トランザクション結果通知(コマンド実行)) で実行結果を通知します。

通知タイミングは下記となり、通知時のトランザクションステータスは processed となります。

  • ご利用者様アプリの呼び出し後
  • ご利用者様アプリからの応答受信後

デバイス向けIF仕様に沿ってご利用者様アプリで対応を行うことで、通知に任意のメッセージを追加することも可能です。

デバイス向けIF仕様については、ご利用者様に個別に提供しております。
ご希望の方は当社にお問い合わせください。

特記事項

  • 本APIでは、下記のような Activity や Service を指定しない Android独自のコマンド各種はサポートしていません。

    • 例えば以下のようなコマンドはサポート外となりますのでご注意ください。
      adb shell am start -a android.intent.action.CALL tel:00000000
      
    • 仮に上記を実現したい場合は、ご利用者様アプリで上記コマンド内容を実行できるよう開発を行い、本APIを経由して、ご利用者様アプリにコマンドを送信することで実現可能です。
  • 本APIでは、最低限のパラメータチェックのみを実行します.

    • action、package、classpathのいずれも指定されない場合は、連携時にエラー通知を送信します。

requiredパラメータの変更

  • 本APIで、下記パラメータがrequired指定を解除しております。
    • action
    • package
    • classpath
  • 上記required指定解除に伴い、mdmclientversionNameによって動作が異なります。

mdmclient versionName : 2.1.1以上(Fw 9系以上)の場合

mdmclient versionName : 2.1.1未満(Fw 8系以下)の場合

  • action、package、classpathの全てが指定されている場合は、正常動作し、アプリ連携時にCWS API Notifications記載のトランザクション結果通知(コマンド実行)を利用して、実行結果を送信します。
  • action、package、classpathの1つでも指定されていない場合は、mdmclientが本変更に対応しておらず、正常に処理できません。
    • 正常に処理できなかった場合、CWS APIの発行したトランザクションが、ステータスpublishedのまま、未完了状態となり、端末の再起動時などに再度処理を実行してしまいます。
    • この場合、下記CWS APIを利用して、トランザクションキャンセル処理を実行してください。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/devices.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

deviceId
required
string

THINKLETのIMEI

header Parameters
Authorization
string
Request Body schema: application/json
required
  • extras を利用することでご利用者様アプリに対して任意の情報を通知することが可能です。
    • ご利用者様アプリの仕様範疇となるため、内容の正当性をチェックしません。
    • ご利用者様アプリへ送信するIntentに設定するextraのKeyは、本APIで指定するJsonのKeyと対応します。
      • 例えば本APIで、 {"e1":"test"} として指定する場合、デバイスでは、Intent.getString("e1") としてアクセスします。
  • extras で対応する型は以下のとおりです。
    • String
    • Boolean
    • Intger (32ビット符号付き整数データ型)
    • Long (64ビット符号付き整数データ型)
    • Double (64ビット倍精度浮動小数点数データ型)
    • Array
    • Object(Json)
  • extras に指定するJsonの String または Boolean 型については、Json記載通りに解釈し、ご利用者様アプリへ通知します。
    • 文字列としてJsonや、Arrayを指定する場合、取得したStringJSONObjectJSONArrayを利用してアクセスしてください。
  • extras に指定するJsonの数値型については、取り扱いにご注意下さい。
    • Integer または Long 型については、Integer 型として収まる範囲であれば、Integer型 として取り扱い、収まらない場合は Long型 として取り扱います。
    • それ以外の小数点を持つ数値型は、Double 型として取り扱います。
    • なお、上記のルールは第一階層にのみ適応され、第二階層以降では、数値型はDouble として取り扱います。
  • extras に指定するJsonの Array 及び Object型については、Intent.putSerializable(Key, Value)を行い、ご利用者様アプリへ通知します。
    • 例えば {"exArray": ["string", 123, null, true]}として指定する場合 デバイスでは、下記のようにアクセスします。
      val exArray: List<Any> = intent.getSerializableExtra("exArray") as List<Any>
      
    • 例えば {"exObject": {"key1":"data1","key2":"data2"}}として指定する場合 デバイスでは、下記のようにアクセスします。
      val exObject: Map<String, Any> = intent.getSerializableExtra("exObject") as Map<String, Any>
      
package
string <byte> [ 1 .. 128 ] characters

ご利用者様アプリのpackage名

classpath
string <byte> [ 1 .. 256 ] characters

ご利用者様アプリのclasspath

action
string <byte> [ 1 .. 128 ] characters

ご利用者様アプリのaction

launchType
required
string

動作のタイプ

  • activity
  • service
  • foregroundservice
  • broadcast
extras
object (json)
  • ご利用者様アプリに対して追加でデータ連携したい情報などあればJson形式で指定
  • 最大バイト数は4096byte、超える場合はエラー

Responses

Request samples

Content type
application/json
{
  • "package": "packagename",
  • "classpath": "packagename.MainActivity",
  • "action": "packagename.action",
  • "launchType": "activity",
  • "extras": {
    }
}

Response samples

Content type
application/json
{
  • "transactionId": 1
}

Transaction

Transaction Apis

トランザクションをキャンセルする

概要

deviceIdに紐づく未処理のトランザクションをキャンセルします。

トランザクションステータスのキャンセル可能範囲について

キャンセル可能範囲一覧

キャンセル可能な条件に合致したトランザクションが複数あった場合、全てキャンセルされます。

トランザクションステータス THINKLET端末の通信状態 キャンセル可能/不可能
created - 可能
published 不可能 可能
可能 不可能
accepted - 不可能
processed - 不可能

publishedの場合について

トランザクションステータスがpublishedの場合は、THINKLET端末の通信状態により状態が変わります。

  • THINKLET端末が通信不可の場合(キャンセル可能)

    • THINKLET端末の接続を待ち、配信待機状態となる。
      • トランザクションステータスは、publishedのままとなる。
    • APIは配信待機しているトランザクションをキャンセル可能です
  • THINKLET端末が通信可能の場合(キャンセル不可能)

    • THINKLET端末へ即時配信され、処理が開始される。
      • 処理が開始された段階で、トランザクションステータスはpublished->acceptedへ更新される。
    • APIはTHINKLET端末にトランザクションが配信されてしまっているので、キャンセル不可能です

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/applications.w
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

deviceId
required
string

THINKLETのIMEI

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
{
  • "canceledTransactions": [
    ]
}

トランザクションの情報を取得する

概要

アプリケーションIDに紐づくトランザクションの情報を取得します。

2024/5以降(r24)にキャンセルしたトランザクションは、transactionStatusがcanceledとなります。
2024/5より前にキャンセルしたトランザクションのtransactionStatusはprocessedとなります。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/applications.r
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

transactionId
required
string

トランザクションID

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
{
  • "transactionId": 1,
  • "transactionStatus": "accepted",
  • "operationId": "put-v1-applications-devices-commands",
  • "deviceId": "123456789023421",
  • "createdAt": "2022-04-24T14:15:22.123456",
  • "updatedAt": "2022-04-25T14:15:22.123456"
}

CommunicationService

Communication Service Apis

WebRTCエンドポイント取得

WebRTC接続用のエンドポイントとチャネルIDを取得します。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/communication-service
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

header Parameters
Authorization
string
Request Body schema: application/json
soraVersion
string

Responses

Request samples

Content type
application/json
{
  • "soraVersion": "string"
}

Response samples

Content type
application/json
{
  • "endpointUrl": "wss://sora01.sample.co.jp/signaling",
  • "channelId": "sgQj8vstE6_202012251632000"
}

Billing

Billing Apis

プラン情報と映像通信の利用実績を取得する

概要

アプリケーションIDに紐づくプラン情報・デバイスの映像通信の利用実績を取得します。

利用実績は、固定プラン・従量プラン問わず、映像通信の利用実績のあるデバイスを対象に集計した結果となります。

利用時間の総計を計算した後に、1時間未満の端数を切り上げて返します。(e.g. 利用時間の総計が14時間1ミリ秒の場合、15時間になります)

指定した年月の月初から月末までのプラン情報及び、利用実績を返却します。

  • 未来の年月を指定した場合、適用予定のプラン情報が取得できます。 (固定プランの申込みのないデバイスのプラン情報は取得できません。)
  • 過去の年月を指定した場合、その年月に適用されていたプランと利用実績が取得できます。
  • 現在の年月を指定した場合、最新のプラン情報・利用実績・アクティベート数が取得できます。
  • アクティベート数には transactionStatus が processed(トランザクション処理済み)に至っていないデバイスも含みます。

固定プランの申込みのないデバイスで、指定した年月に利用実績がない場合は、プラン情報と利用実績の取得はできません。

必要なmimiのscope

  • https://apis.mimi.fd.ai/auth/thinklet/applications.r
Authorizations:
mimiAccessToken
path Parameters
applicationId
required
string

mimiで登録されるアプリケーションID

query Parameters
month
required
number [ 1 .. 12 ]

利用実績を取得したい月

year
required
number >= 2022

利用実績を取得したい年

header Parameters
Authorization
string

Responses

Response samples

Content type
application/json
Example
{
  • "numberOfDevices": 3,
  • "activateDevices": 2,
  • "devices": [
    ],
  • "others": {
    }
}