ユーザータイプの設定
PlanetKitは、グループ通話に参加する際にアプリケーションで異なるカテゴリのユーザーを区別できるよう、ユーザータイプを設定する機能を提供します。
この機能を使用すると、カスタムユーザータイプ(例:一般ユーザーとボット)を定義し、ユーザータイプに応じてアプリケーションの動作やUIを変えることができます。なお、LINE Planetは一部のユーザータイプの値をビルトインエージェントの役割のために予約しています。
| 通話タイプ | SDKの最低バージョン |
|---|---|
| グループ通話(カンファレンス) | PlanetKit 6.1 |
ユーザータイプ
ユーザータイプは大きく次のように分類されます。
- カスタムユーザータイプ
- アプリケーションで定義し、管理するユーザータイプです。
- 値の範囲:1~9999
- PlanetKitユーザータイプ
- LINE Planetで内部的にエージェントの役割として使用するユーザータイプで、
PlanetKitUserTypeに定義されています。 - 値の範囲:0、10000~99999
- 詳しくは、エージェント通話を参照してください。
- LINE Planetで内部的にエージェントの役割として使用するユーザータイプで、
サンプルコード
以下は、ユーザータイプの設定機能を使用するサンプルコードです。
ユーザータイプの定義および設定
要件に合わせてアプリケーションのユーザータイプを定義し、グループ通話に参加する際にPlanetKitJoinConferenceSettingBuilderのwithCustomUserTypeKey()を使用してユーザータイプを設定してください。
enum AppUserType: Int {
case videoBot = 100
}
func joinConference(...) {
...
let settings = try! PlanetKitJoinConferenceSettingBuilder()
...
.withCustomUserTypeKey(userType: AppUserType.videoBot.rawValue)
.build()
let param = PlanetKitConferenceParam(myUserId: myUserId, roomId: roomId, roomServiceId: serviceId, displayName: displayName, delegate: manageable, accessToken: accessToken)
...
let result = PlanetKitManager.shared.joinConference(param: param, settings: settings)
...
}
各ユーザータイプに適用するロジック実装
各ユーザータイプに合わせて処理するロジックを実装します。PlanetKitUserTypeContainerAPIを使用してユーザータイプを確認できます。
extension ConferenceViewController: PlanetKitConferenceDelegate {
...
func peerListDidUpdate(_ conference: PlanetKitConference, updated: PlanetKitConferencePeerListUpdateParam) {
for peer in updated.addedPeers {
if peer.userType.customUserType == AppUserType.videoBot.rawValue {
print("Video bot has joined. ID: \(peer.id.uniqueId)")
}
}
for peer in updated.removedPeers {
if peer.userType.customUserType == AppUserType.videoBot.rawValue {
print("Video bot has left. ID: \(peer.id.uniqueId)")
}
}
}
}