Repository navigation
Specification
Device Connect iOS Message APIはDevice Connect RESTful APIで定義されたAPIを、iOS Messageで読み替えたAPIとする。
ProfileのAPI仕様書において、リクエストのRESTは、Architectural Styles and the Design of Network-based Software Architectures CHAPTER 5 Representational State Transfer (REST)に基づいたフォーマットで定義している。
アプリケーションはリクエストを送信する際、下記のパラメータを含めること。
| 論理名 | 物理名 | データ型 | 省略 | 設定値 |
|---|---|---|---|---|
| アクセストークン | accessToken | string | 右記参照 | Authorization Create Access Token APIで取得したアクセストークン。Availability APIのみ省略可。それ以外のAPIでは必須。 |
注意事項 ・デバイスIDを除くリクエストパラメータは、URLエンコードすること。 ・マルチパートで送信できるファイルは1つのみなので、その点を考慮した実装をする事。 ・各プロファイルにアクセスするために、アクセストークンが必要になります。 ただし、Authorizationプロファイル、SystemプロファイルとNetwork Service Discoveryプロファイルは、例外的にアクセストークン無しでもアクセスすることができます。
| HTTPメソッド |
|---|
| GET |
| PUT |
| POST |
| DELETE |
Service Discovery API
GET http://localhost:4035/serviceDiscovery&accessToken=xxxxxxx
Notification API
POST http://localhost:4035/notification/notify?serviceId=取得済みサービスID&type=3&body=文字列&accessToken=xxxxxx
ProfileのAPI仕様書において、以下のようなレスポンス、メッセージは本資料下部の例のようなJSONとして返される。 各Profileで対応できないレスポンスのパラメータは、省略すること。 例えば、下記の例で言うとmimeTypeを判別できないデバイスの場合には、mimeTypeが省略されたレスポンスが返される。
Device Connect Managerはレスポンスを返却する際に下記のパラメータを含める。デバイスプラグイン側で含める必要はない。
| 論理名 | 物理名 | データ型 | 省略 | 設定値 |
|---|---|---|---|---|
| マネージャ名 | product | string | - | Device Connect Managerの名前。 |
| バージョン | version | string | - | Device Connect Managerのバージョン名。 |
| HMAC | hmac | string | 右記参照 | Device Connect Managerの正当性を示すための署名。アプリケーションが事前にHMAC生成鍵を送信していなかった場合は省略される。 |
| 論理名 | 物理名 | データ型 | 備考 | |
| イベントオブジェクト | playStatus | object | イベントの内容を保持するオブジェクト | |
| メディアID | mediaId | String | レコードが開始されたメディアのマイムタイプ。このタイプで、動画、音声などを識別する。 | |
| マイムタイプ | mimeType | String | レコードが開始されたメディアのマイムタイプ。このタイプで、動画、音声などを識別する。 | |
| 再生状態 | status | String | ・"play" 再生 ・"mute" ミュート ・"unmute" ミュート解除 ・"pause" 一時停止 ・"resume" 一時停止解除 |
|
| トラック番号 | trackNo | number | ||
| トラック内の再生位置 | pos | number | トラックの再生位置を秒単位で返す。 | |
{
"product":"Device Connect Manager",
"version":"x.x",
"hmac":"yyyyy",
"result":0,
"playStatus":{
"mediaId":"mid001",
"mimeType":"audio/mp3",
"status":"play",
"trackNo":5,
"pos":80
}
}
ProfileのAPI仕様書において、リクエストに対するレスポンスは result が 0以外 のとき、以下の項目を含む。
| 論理名 | 物理名 | データ型 | 説明 |
|---|---|---|---|
| エラーコード | errorCode | int | エラー番号 |
| エラーメッセージ | errorMessage | NSString* | エラー内容 |
| エラーコード | エラー内容 |
|---|---|
| 1 | 原因不明のエラー |
| 2 | 未サポートプロファイルエラー |
| 3 | 未サポートアクション(HTTPメソッド)エラー |
| 4 | 未サポートアトリビュートエラー |
| 5 | デバイスID未設定エラー |
| 6 | デバイス発見失敗エラー |
| 7 | タイムアウトエラー |
| 8 | 未知のインターフェースへのアクセスエラー |
| 9 | バッテリー低下による操作不能エラー |
| 10 | 不正なリクエストパラメータエラー |
| 11 | 認証エラー |
| 12 | アクセストークン有効期限切れエラー |
| 13 | アクセストークン未設定エラー |
| 14 | スコープ外へのアクセスエラー |
| 15 | 認証時にクライアントIDを発見できなかったエラー |
| 16 | デバイス状態異常エラー |
| 17 | サーバー状態異常エラー |