チャンネル¶
チャンネルの作成¶
新しい会話チャンネルを作成するには、CreateChannelParamsオブジェクトを作成し、次にChatクラスのcreateChannel()メソッドを呼び出します。
チャンネルパラメータを作成する¶
| フィールド名 | 説明 | タイプ | 必須 |
|---|---|---|---|
| channelId | チャンネルID (英字、数字、および一部の特殊文字( -, ., _, ~, :)が許可され、最大100文字) | 文字列 | Y |
| password | パスワード(PRIVATEチャンネルのみ必須フィールド)(最大50文字) | 文字列 | N |
| channelName | チャンネル名 (最大50文字) | 文字列 | Y |
| maxMemberCount | チャンネル参加者の最大数 (最小2から最大5,000) | 整数 | Y |
| type | チャンネルタイプ(PRIVATE, PUBLIC, GROUP) | 列挙 | Y |
新しい会話チャンネルを作成するためのサンプルコードは以下の通りです。
using hive;
CreateChannelParams createChannelParams = new CreateChannelParams();
createChannelParams.channelId = "CHANNEL_ID";
createChannelParams.password = "";
createChannelParams.channelName = "CHANNEL_NAME";
createChannelParams.maxMemberCount = 8;
createChannelParams.type = ChannelType.PUBLIC;
Chat.createChannel(createChannelParams, (ResultAPI result) => {
if (result.isSuccess()) {
// API Call Success
}
});
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;
CreateChannelParams param;
param.channelId = "CHANNEL_ID";
param.channelName = "CHANNEL_NAME";
param.password = "";
param.maxMemberCount = 8;
param.type = ChannelType::PUBLIC;
Chat::createChannel(param, [=](ResultAPI const & result) {
if (result.isSuccess()) {
// API Call Success
}
});
import com.hive.Chat;
import com.hive.ResultAPI;
val params = Chat.CreateChannelParams(
channelId = "CHANNEL_ID",
password = "",
channelName = "CHANNEL_NAME",
maxMemberCount = 8,
type = Chat.ChannelType.PUBLIC
)
Chat.createChannel(params, object: Chat.CreateChannelListener{
override fun onResult(result: ResultAPI) {
if (result.isSuccess) {
// APIコール成功
}
}
})
#import "HIVEService.h"
HiveChatCreateChannelParams* params = [[HiveChatCreateChannelParams alloc] init];
params.channelId = @"CHANNEL_ID";
params.password = @"";
params.channelName = @"CHANNEL_NAME";
params.maxMemberCount = 8;
params.type = Chat::ChannelType::PUBLIC;
[HiveChat createChannelWithCreateParams:params handler:^(HIVEResultAPI * result) {
if (result.isSuccess) {
// API Call Success
}
}];
チャンネル削除¶
既存のチャットチャンネルを削除するには、ChatクラスのdeleteChannel()メソッドを呼び出します。
会話チャンネルを削除するための例のコードはこちらです。
チャンネルエントリー¶
既存のチャットチャンネルに入るには、EnterChannelParamsオブジェクトを作成し、その後ChatクラスのenterChannel()メソッドを呼び出します。
チャンネルパラメータを入力¶
| フィールド名 | 説明 | タイプ | 必須 |
|---|---|---|---|
| channelId | チャンネルID | 文字列 | Y |
| password | パスワード(PRIVATE チャンネルに必要) | 文字列 | N |
会話チャンネルに入るための例のコードはこちらです。
チャンネルの終了¶
参加したチャットチャンネルを退出するには、ChatクラスのexitChannel()メソッドを呼び出してください。
これは、参加した会話チャンネルから退出するための例のコードです。
すべてのチャンネルリストを表示¶
現在存在するすべてのチャンネルのリストを取得するには、GetChannelsParamsオブジェクトを作成し、次にChatクラスのgetChannels()メソッドを呼び出します。
Note
GetChannelsParamsオブジェクトを渡さない場合(オブジェクトが提供されていない場合はnullを渡す)、フィルタリングなしで現在存在するチャンネルの全リストが返されます。
チャンネルパラメータを取得する¶
| フィールド名 | 説明 | タイプ | 必須 |
|---|---|---|---|
| type | チャンネルタイプ(PRIVATE、PUBLIC、GROUP) | enum | Y |
| channelId | 特定のチャンネルIDで始まるチャンネルを取得 | string | N |
| channelName | 特定のチャンネル名を含むチャンネルを取得 | string | N |
| pageOrder | ソート順(ASC、DESC)(デフォルトは DESC) | string | N |
| pageSize | ページごとに取得するチャンネルの数 (最小10〜最大100、デフォルト10) | integer | N |
| pageNumber | 取得するページ番号 (1から始まり、デフォルトは1) | integer | N |
ChannelオブジェクトとChannelPageオブジェクトがレスポンスとして提供され、構造は次のとおりです。
チャンネル¶
| フィールド名 | 説明 | タイプ |
|---|---|---|
| channelId | チャンネルID | 文字列 |
| type | チャンネルタイプ(PRIVATE, PUBLIC, GROUP) | 列挙型 |
| owner | チャンネル所有者の Hive PlayerID | 文字列 |
| channelName | チャンネル名 | 文字列 |
| maxMemberCount | チャンネル参加者の最大数 | 整数 |
| regTime | チャンネル作成日時(UTC+0に基づく、フォーマット:yyyy-MM-dd'T'HH:mm:ss.SSSZ) | 文字列 |
チャンネルページ¶
| フィールド名 | 説明 | タイプ |
|---|---|---|
| size | ページあたりのアイテム数 | 整数 |
| currentPage | 現在のページ番号 | 整数 |
| totalElements | アイテムの総数 | 整数 |
| totalPages | ページの総数 | 整数 |
以下は、すべての既存のPUBLICタイプのチャンネルのリストを取得するための例コードです。
using hive;
GetChannelsParams getChannelsParams = new GetChannelsParams();
getChannelsParams.type = ChannelType.PUBLIC;
Chat.getChannels(getChannelsParams, (ResultAPI result, List<Channel> channels, ChannelPage channelPage) => {
if (result.isSuccess()) {
// API Call Success
foreach (Channel channel in channels) {
// Retrieve Channel
}
if (channelPage != null) {
// Retrieve ChannelPage
}
}
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;
Chat::GetChannelsParams params = Chat::GetChannelsParams();
params.type = Chat::ChannelType::PUBLIC;
Chat::getChannels(param, [=](ResultAPI const & result, std::vector<Channel> const & channels, ChannelPage const & pageInfo) {
if (result.isSuccess()) {
// API Call Success
for (Chat::Channel channel : channels) {
// チャンネルを取得
}
if (channelPage != null) {
// Retrieve ChannelPage
}
}
});
import com.hive.Chat;
import com.hive.ResultAPI;
val params = Chat.GetChannelsParams(type = Chat.ChannelType.PUBLIC)
Chat.getChannels(params, object: Chat.GetChannelsListener{
override fun onResult(
result: ResultAPI,
channels: ArrayList<Chat.Channel>,
channelPage: Chat.ChannelPage?
) {
if (result.isSuccess) {
// APIコール成功
channels.forEach {
// チャンネルを取得
}
channelPage?.let {
// チャンネルページを取得
}
}
}
})
import com.hive.Chat;
Chat.GetChannelsParams params = new Chat.GetChannelsParams(Chat.ChannelType.PUBLIC, null, null, null, null, null);
Chat.getChannels(params, (result, channels, channelPage) -> {
if (result.isSuccess()) {
// API Call Success
for (Chat.Channel channel : channels) {
// Retrieve Channel
}
if (channelPage != null) {
// Retrieve ChannelPage
}
}
});
import HIVEService
let params = HiveChatParams.GetChannelsParams(type: .public, null, null, null, null, null)
ChatInterface.getChannels(getChannelsParams: params) { result, channels, pageInfo in
if result.isSuccess {
channels.forEach {
// Retrieve Channel
}
channelPage?.let {
// Retrieve ChannelPage
}
}
}
#import "HIVEService.h"
HiveChatGetChannelsParams* params = [[HiveChatGetChannelsParams alloc] init];
params.type = Chat::ChannelType::PUBLIC;
[HiveChat getChannelsWithGetChannelsParams:params handler:^(HIVEResultAPI * result, NSArray<HiveChatChannelContent *> * channels, HiveChatPageInfo * pageInfo) {
if (result.isSuccess) {
// APIコール成功
for (Chat::Channel *channel : channels) {
// Retrieve Channel
}
if (channelPage != null) {
// Retrieve ChannelPage
}
}
}];
チャンネル情報の問い合わせ¶
特定のチャンネルに関する詳細情報を取得するには、ChatクラスのgetChannelInfo()メソッドを呼び出します。
レスポンスにはChannelオブジェクトとMemberオブジェクトが含まれており、構造は次のとおりです。
チャンネル¶
| フィールド名 | 説明 | タイプ |
|---|---|---|
| channelId | チャンネルID | string |
| type | チャンネルタイプ (PRIVATE, PUBLIC, GROUP) | enum |
| owner | チャンネル所有者の Hive PlayerID | string |
| channelName | チャンネル名 | string |
| maxMemberCount | チャンネル参加者の最大数 | integer |
| regTime | チャンネル作成日時(UTC+0に基づく、フォーマットyyyy-MM-dd'T'HH:mm:ss.SSSZ) | string |
メンバー¶
| フィールド名 | 説明 | タイプ |
|---|---|---|
| playerId | Hive プレイヤーID | long |
| extraData | 追加データ(UTF-8に基づく)(最大256バイト) | string |
| connectedTime | 接続時間(UTC+0に基づく、フォーマット yyyy-MM-dd'T'HH:mm:ss.SSSZ) | string |
特定のチャンネルに関する詳細情報を取得するためのサンプルコードです。
#include <HIVE_SDK_Plugin/HIVE_CPP.h>
using namespace hive;
std::string channelId = "CHANNEL_ID";
Chat::getChannelInfo(channelId, [=](ResultAPI const & result, Channel const & channel, std::vector<Member> const & members) {
if (result.isSuccess()) {
if (channel != null) {
// チャンネルを取得
}
for (Chat::Member member : members) {
// Retrieve Member
}
}
});
import com.hive.Chat;
import com.hive.ResultAPI;
val channelId = "CHANNEL_ID"
Chat.getChannelInfo(channelId, object: Chat.GetChannelInfoListener {
override fun onResult(
result: ResultAPI,
channel: Chat.Channel?,
members: ArrayList<Chat.Member>
) {
if (result.isSuccess) {
channel?.let {
// Retrieve Channel
}
members.forEach {
// Retrieve Member
}
}
}
})
#import "HIVEService.h"
NSString *channelId = @"CHANNEL_ID";
[HiveChat getChannelInfoWithChannelId:channelId handler:^(HIVEResultAPI * result, HiveChatChannelContent * channel, NSArray<HiveChatMember *> * members) {
if (result.isSuccess) {
if (channel != null) {
// Retrieve Channel
}
for (Chat::Member *member : members) {
// Retrieve Member
}
}
}];
チャンネルメンバーのお問い合わせ¶
チャンネルに参加しているメンバーを表示するには、Chat クラスのメソッド getChannelMembers() を呼び出します。
Note
応答値は、getChannelInfo() から渡された Member オブジェクトと同じです。
チャンネルイベント管理¶
Hive はチャットソケットサーバーの接続状態を検出し、アプリユーザーやチャネルで発生する状態変化イベントをアプリに継続的に配信します。詳細なイベント処理方法については、イベント管理 > チャネルイベント ドキュメントを参照してください。