# V1 から V2 への移行ガイド

> Migrate from Vivox server-side recording version 1 to version 2.

バージョン 1 のサーバー側レコーディング API からアップグレードする場合は、このガイドに従ってください。

## 主な変更点##key-changes

V2 API では以下の変更が行われています。

* TTL が有効なオプションではなくなり、すべてのリクエストに履歴を使用する必要があります。
* API で、ストレージ用に GCP バケットがサポートされるようになりました。
* API がよりレストフルになるように再設計されました。
  * 状態完了ファイルがコールバックサーバーに置き換えられました。
* SSR で、Unity Cloud 組織のサービスアカウントの使用が必要になりました。
* 重複排除機能が削除されました。複製リクエストに対する `409` エラーコードが表示されなくなりました。
* 自動終了機能が削除されました。リクエストは常に、履歴リクエストの全継続時間にわたって実行されます。
* オーディオをデコードするためにリクエストを行う必要がなくなりました。Vivox によって状態が自動的に管理され、最終的にチャンネル内の話し手ごとに 1 つの .WAV ファイルが作成されます。

## 認証の変更##authentication-changes

1. SSR で、すべてのリクエストに Unity Authentication の使用が必要になりました。
   * 組織またはプロジェクトをまだ作成していない場合は、作成してください。詳細については プロジェクトの作成方法 を参照してください。

2. プロジェクトと組織を作成したら、その詳細をアカウントマネージャーと共有する必要があります。アカウントマネージャーが、組織に対して SSR を有効にします。

3. SSR が有効になったら、API で認証を行うためのサービスアカウントを作成する必要があります。[サービスアカウントの作成方法](https://services.docs.unity.com/docs/service-account-auth/#create-a-service-account) を参照してください。

4. サービスアカウントのページで、サービスアカウントにアクセス許可を割り当てます。**Manage organization permissions** を選択し、`Server Side Recording Processor Role` を割り当てます。これにより、このサービスアカウントが SSR API にアクセスできるようになります。


   **ssr のアクセス許可をドロップダウンから選択して有効にする例。:**
   ![ssr のアクセス許可をドロップダウンから選択して有効にする例。](/api/media?file=/vivox-unity/media/images/Unity/server-side-recording/images/ssr-permission.png)

5. このサービスアカウントを使用するには、[サービスアカウントで認証を行う方法](https://services.docs.unity.com/docs/service-account-auth/#authenticate-an-api-using-service-account-credentials) を参照してください。

## API の変更##api-changes

> **Note:**
>
> [SSR v2 の API の完全なドキュメント](https://services.docs.unity.com/ssr/v2/) は、Web Services API ドキュメント内にあります。
>
> このガイドでは V1 API から V2 API への移行に伴う変更点のみを示し、新機能については説明していません。新しいフィールドとオプションの概要については、完全な API ドキュメントを参照してください。

### リクエストの変更##request-changes

V2 API では、リクエストのフィールドを渡すためのクエリパラメーターが削除されています。すべてのフィールドが、リクエスト本文内で JSON として渡されるようになりました。存在しなくなったフィールドのリストを以下に示します。

1. `destination_credentials` は、`storageOptions` 内に含まれるようになりました。V1 API と同様に AWS を使用するには、特定のコードセグメントを置き換える必要があります。

   | 置き換え元のコード                                                                                                                    | 置き換え先のコード                                                                                                                                      |
   | ---------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------- |
   | \{  "destination\_credentials": \{ "bucket": "my-bucket",  "access\_key\_id": "secret", "secret\_access\_key": "secret" }  } | \{ "storageOptions": \{ "provider": "aws", "credentials": \{ "bucket": "my-bucket", "accessKeyId": "secret", "secretAccessKey": "secret" } } } |

2. `target_type` フィールドは削除してください。V2 API は、チャンネルサブスクリプションのみをサポートします。

3. `ttl` フィールドは削除されました。`history` フィールドを使用して、レコーディングの継続期間を指定してください。

> **Note:**
>
> 新しい任意のフィールド `callbackUri` が追加されました。このフィールドを使用すると、ホストしているサーバーに対して、ジョブの状態を受信するコールバックサーバーを指定できます。このフィールドでは任意の URL を指定でき、Vivox はそれに対してリクエストを行います。詳細については、[コールバックサーバーのドキュメント](./callback-server.md) を参照してください。

## SSR デコーダー##ssr-decoder

SSR デコーダーは独立したリクエストではなくなりました。リクエストの結果としてチャンネル内の話し手ごとに 1 つの .WAV ファイルが作成されるため、インフラストラクチャからジョブの状態のトラッキングを削除できます。

## コールバックサーバー##callback-server

`status_complete` と `status_decoded` の削除に伴い、ジョブの完了時に通知を行うメカニズムが追加されました。これはコールバックサーバーを通じて行われます。詳細については、[コールバックサーバーのドキュメント](./callback-server.md) を参照してください。

この機能は完全に任意ですが、ジョブが完了したタイミングやオーディオが欠落している理由を知るための唯一の手段となります。
