ソフトウェアアップデート手順
THINKLET向けに開発したソフトウェアのアップデート手順について説明します。
ソフトウェアアップデートの概要
CWS APIでは、THINKLET向けに開発したソフトウェアを、同一のアプリケーションに所属するTHINKLETへ、オンラインで配信できます。
ソフトウェアアップデートは、次の流れで実施します。
- 配信するソフトウェアのパッケージ名・バージョン情報をCWS APIに登録する。
- バイナリ(apk ファイル)をアップロードするためのURLを発行する。
- 返却されたアップロードURLを使って、パッケージ名・バージョンに対応するバイナリ(apkファイル)をCWSへアップロードする。
- パッケージ名・バージョン情報を指定して、ソフトウェアの配信を開始する。
- 配信中のソフトウェアとバージョンを指定して、THINKLETに対してアップデート(インストール)指示を行う。
- トランザクション結果通知、またはトランザクション参照APIでアップデート(インストール)結果を確認する。
バイナリ(apk ファイル)をCWSアップロードしただけでは、THINKLETにはインストールされません。 THINKLETへ反映するには、別途アップデート(インストール)を行うためのAPI実行が必要です。
アップデート(インストール)結果は非同期で処理されます。APIレスポンスで返却されるtransactionIdを用いて、配信状況や実行結果を追跡してください。
前提条件
ソフトウェアアップデートを実施するには、次の準備が必要です。
- CWS APIが 利用可能な状態である。
- 配信対象のTHINKLETがアプリケーションに所属している。
- 配信するTHINKLET向けのソフトウェアを作成している。
上記に加えて、トランザクション結果通知を受け取るWebhook URLが設定されていると、アップデート状況が詳細に把握できます。
CWS APIの利用準備については、利用開始の手順を参照してください。
トランザクション結果通知や状態遷移の詳細は、トランザクション仕様を参照してください。
THINKLET向けのソフトウェア作成にあたっては、THINKLET開発者ポータルやTHINKLET App SDKを参照してください。
CWS APIで配信するソフトウェアのファイルサイズは、5GB以内としてください。
ソフトウェアの管理
CWS APIに登録したソフトウェアの情報を登録・確認・更新・削除できます。
配信可能なソフトウェアの一覧、パッケージ情報、バージョン情報、バイナリのアップロード状態、配信設定などを確認したり、不要になったソフトウェア、バージョン、バイナリ、配信設定を削除したりできます。
このセクションでは、ソフトウェアのパッケージやバージョンをより細かく管理するためのAPIについて説明します。
単純にソフトウェアを配信するだけであれば、配信手順の一例で説明しているソフトウェアをアップロードするためのURLを作 成するAPIを利用できます。このAPIは、パッケージ・バージョンの登録、バイナリのアップロードURL発行、配信の有効化を一度に行います。
一方、このセクションで説明するAPI群を利用すると、これらの手順を個別に実行できます。例えば、先にパッケージとバージョン情報のみを登録しておき、後からバイナリをアップロードする、といった柔軟な運用が可能です。
ソフトウェア情報の登録
CWS APIにソフトウェアのパッケージおよびバージョンを個別に登録できます。
パッケージの登録
CWS APIのソフトウェア(パッケージ)を登録するを実行します。
packageは、CWS API全体で一意である必要があります。ai.fdで始まるpackageは使用できません。
使用シーン例: 新しいソフトウェアcom.example.appをCWS APIに登録する。
curl -X POST 'https://apis.thinklet.fd.ai/v1/applications/{applicationId}/packages' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: application/json' \
--data '{
"package": "com.example.app",
"displayName": "サンプルアプリケーション"
}'
レスポンス例:
{
"package": "com.example.app",
"displayName": "サンプルアプリケーション",
"registerDate": "2025-11-28T14:15:22.123456",
"updateDate": "2025-11-28T14:15:22.123456"
}
バージョンの登録
CWS APIの指定したソフトウェア(パッケージ)のバージョンを登録するを実行します。
- バージョンは、セマンティック・バージョニングに基づく名称を使用することを推奨します。セマンティック・バージョニングでないバージョンは、APIでバージョン一覧を取得した際に意図しない順序で表示されることがあります。
- 同一のソフトウ ェアに対して、同じバージョンを重複して登録することはできません。
-
CWS APIにソフトウェアの情報を登録する際、CWS APIに登録した
versionと、登録するソフトウェアのVersionNameは一致させてください。異なる場合、THINKLETへのインストールは実施されますが、アップデート指示時に指定したバージョンとインストール後のバージョンが一致しないため、エラーとして通知されます。 -
既に配信済みのソフトウェアをアップデートする場合、アップデート用のソフトウェアでは、THINKLETにインストール済みのバージョンより大きい
VersionCodeを設定する必要があります。VersionCodeが同一かそれより古い場合、THINKLETへのインストールは失敗します。
使用シーン例: パッケージcom.example.appのバージョン1.0.0をCWS APIに登録する。
curl -X POST 'https://apis.thinklet.fd.ai/v1/applications/{applicationId}/packages/com.example.app/versions' \
--header 'Authorization: Bearer {access_token}' \
--header 'Content-Type: application/json' \
--data '{
"version": "1.0.0",
"description": "初期リリース版"
}'
レスポンス例:
{
"package": "com.example.app",
"version": "1.0.0",
"description": "初期リリース版",
"registerDate": "2025-11-28T14:15:22.123456",
"updateDate": "2025-11-28T14:15:22.123456"
}
バイナリのアップロードURLの発行
指定したソフトウェア、バージョンのバイナリをアップロードするためのURLは、ソフトウェアのバイナリをアップロードするためのURLを作成するで発行できます。
- このAPIを使用するには、あらかじめパッケージの登録およびバージョンの登録が完了している必要があります。
- マルチパートアップロードには対応していません。
- 発行されたURLへのアップロード方法は、バイナリのアップロードを参照してください。
使用シーン例: パッケージcom.example.appのバージョン1.0.0のバイナリアップロード用URLを発行する。
curl -X POST 'https://apis.thinklet.fd.ai/v1/applications/{applicationId}/packages/com.example.app/versions/1.0.0/binaries' \
--header 'Authorization: Bearer {access_token}'
レスポンス例:
{
"urlList": [
{
"uploadUrl": "https://s3.amazonaws.com/...",
"startTimestamp": 1633014000,
"endTimestamp": 1633017600,
"expireIn": 3600
}
]
}
バイナリのアップロード
ソフトウェアのバイナリをアップロードするためのURLを作成するで発行したURLに、THINKLETに配信するソフトウェアをアップロードします。
このURLは、Amazon S3のPresigned URLです。
アップロードを実施する際は、Content-Typeにapplication/vnd.android.package-archiveを指定してください。
アップロード可能なファイルサイズは、5GB以内です。
アップロードを実施するコマンド例:
curl -X PUT '{CWS APIから取得したアップロードURL}' \
--header 'Content-Type: application/vnd.android.package-archive' \
--upload-file '{パッケージファイルのパス}'