Android アプリケーション - アップグレード戦略の取得
API 説明:クライアントのバージョン番号に基づいて、対応するアップグレード戦略を取得します
📮 リクエスト情報
リクエスト URL
POST https://api.upgrade.toolsetlink.com/v1/apk/upgrade
リクエストヘッダー
| パラメータ名 | 必須 | 型 | 例 | 説明 |
|---|---|---|---|---|
| X-Timestamp | Yes | string | 2025-02-17T10:34:55+08:00 | RFC3339 形式のリクエスト時間 |
| X-Nonce | Yes | string | fc812cc0b9b51e8c | 一意のランダム文字列(少なくとも 16 文字) |
| X-AccessKey | Yes | string | mui2W50H1j-OC4xD6PgQag | AccessKey シークレットキー |
| X-Signature | Yes | string | 3603437250c2df51fc46426ac79d8995 | リクエスト署名 署名ルール |
| Content-Type | Yes | string | application/json |
🔐 リプレイ攻撃防止メカニズム
- サーバーは、サーバー時間とのタイムスタンプの差が ±5 分を超えないことを検証します
- サーバーは、Nonce 値が既に存在するかどうかを確認します(重複リクエストを防止するため)
リクエストボディ
json
{
"apkKey": "isVZBUvkFhv6oHxk_X-D0Q",
"versionCode": 1,
"appointVersionCode": 0,
"devModelKey": "stv1",
"devKey": "LOYlLXNy7w",
"patchAlgo": 0
}リクエストボディパラメータ説明
| パラメータ名 | 必須 | 型 | 例 | 説明 |
|---|---|---|---|---|
| apkKey | Yes | string | isVZBUvkFhv6oHxk_X-D0Q | Android アプリケーションの一意の識別子 |
| versionCode | Yes | int | 1 | クライアントのバージョンコード |
| appointVersionCode | No | int | 0 | 希望するアップグレードバージョンコード、0 または未指定は最新バージョンを要求 |
| devModelKey | No | string | stv1 | デバイスモデルの一意の識別子 |
| devKey | No | string | LOYlLXNy7w | デバイスの一意の識別子(MAC アドレスを一意の識別子として使用できます) |
| patchAlgo | No | int | 0 | アップグレードアルゴリズム: 0: フルアップグレード; 1: HDiffPatch アルゴリズム |
📮 レスポンス情報
成功レスポンスボディ
json
{
"code": 200,
"msg": "新しいバージョンを取得しました",
"data": {
"apkKey": "isVZBUvkFhv6oHxk_X-D0Q",
"packageName": "com.a.c",
"versionName": "v2",
"versionCode": 2,
"urlPath": "http://file.com/2.apk",
"urlFileSize": 7213,
"urlFileMd5": "36ee2a36b5d20d1008507d253423eea7",
"patchAlgo": 0,
"patchUrlPath": "http://file.com/1-2.patch",
"patchUrlFileSize": 203,
"patchUrlFileMd5": "36ee2a36b5d20d1008507d253423eea7",
"upgradeType": 1,
"promptUpgradeContent": "プロンプトコンテンツ"
}
}レスポンスボディパラメータ説明
| パラメータ名 | 型 | 例 | 説明 |
|---|---|---|---|
| apkKey | string | isVZBUvkFhv6oHxk_X-D0Q | Android アプリケーションの一意の識別子 |
| packageName | string | com.a.c | Android アプリケーションのパッケージ名 |
| versionName | string | v1 | バージョン名 |
| versionCode | int | 1 | バージョンコード |
| urlPath | string | http://file.com/2.apk | ファイルダウンロードアドレス |
| urlFileSize | int | 7213 | ファイルサイズ(バイト) |
| urlFileMd5 | string | 36ee2a36b5d20d1008507d253423eea7 | ファイルの MD5 ハッシュ |
| patchAlgo | int | 0 | アップグレードアルゴリズム: 0: フルアップグレード; 1: HDiffPatch アルゴリズム |
| patchUrlPath | string | http://file.com/1-2.patch | パッチファイルのダウンロードアドレス |
| patchUrlFileSize | int | 7213 | パッチファイルサイズ(バイト) |
| patchUrlFileMd5 | string | 36ee2a36b5d20d1008507d253423eea7 | パッチファイルの MD5 ハッシュ |
| upgradeType | int | 1 | アップグレード方法: 1: プロンプトアップグレード; 2: サイレントアップグレード; 3: 強制アップグレード |
| promptUpgradeContent | string | プロンプトコンテンツ | プロンプトアップグレード説明コンテンツ |
典型的なエラーレスポンスボディ
json
{
"code": 404001,
"msg": "利用可能なバージョンを取得できません",
"docs": "対応するアプリケーションバージョンが見つかりません。システムに正しく作成されているか確認してください。ドキュメントを参照してください:https://upgrade.toolsetlink.com/ja/upgrade/recommend/apk/app-version.html",
"data": null
}📊 ステータスコード
| HTTP ステータスコード | コード | シナリオ説明 | 解決策 |
|---|---|---|---|
| 200 | 0 | リクエスト成功、既に最新バージョンです | |
| 200 | 200 | リクエスト成功、バージョンアップグレード戦略を取得 | |
| 400 | 400001 | 無効なリクエスト | |
| 400 | 400002 | パラメータが不足しています | |
| 400 | 400003 | 無効なパラメータ | |
| 400 | 400004 | 無効なヘッダー | |
| 400 | 400005 | 無効なボディ | |
| 401 | 401001 | 認証に失敗しました | |
| 401 | 401002 | 署名検証に失敗しました | |
| 404 | 404001 | リソースが見つかりません | |
| 404 | 404002 | クエリレコードが見つかりません | |
| 404 | 404003 | 処理方法が見つかりません | |
| 404 | 404004 | リクエストが見つかりません | |
| 429 | 429001 | アプリケーションタスク戦略リクエストの流量制限 | 現在のアップグレードタスクのリクエスト流量制限に達しました、後で再試行してください。 |
| 500 | 500001 | サーバー内部エラー | お問い合わせください お問い合わせ |
| 500 | 500002 | サーバー内部データ検証に失敗しました | お問い合わせください お問い合わせ |