API
CBSChatModule.SetServerID - Sets the server id for the server chat. You need to set this value before initializing the chat.
using CBS;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var serverID = "server456234";
ChatModule.SetServerID(serverID);
}
}
CBSChatModule.SetRegion - Sets the region ID for the regional chat. You need to set this value before initializing the chat. For example "ru", "en".
using CBS;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var regionID = "ua";
ChatModule.SetRegion(regionID);
}
}
CBSChatModule.GetOrCreateChat - Get chat instance from pre-configured template. Global, Server, Regional.
using CBS;
using CBS.Models;
using CBS.Utils;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
// get chat instance
var chatInstance = ChatModule.GetOrCreateChat(ChatTitle.GLOBAL);
// get chat history
chatInstance.GetChatHistory(OnGetChatMessages);
// subscribe to new message
chatInstance.OnNewMessage += OnNewMessageAdded;
// send message
chatInstance.SendMessage(new CBSSendTextMessageRequest
{
MessageBody = "new message",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
});
// send sticker
chatInstance.SendSticker(new CBSSendStickerMessageRequest
{
StickerID = "sticker id",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
});
// send item
chatInstance.SendItem(new CBSSendItemMessageRequest
{
InstanceID = "item instance id",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
});
}
private void OnGetChatMessages(CBSGetMessagesFromChatResult result)
{
if (result.IsSuccess)
{
var chatID = result.ChatID;
var messages = result.Messages;
foreach (var message in messages)
{
var messageID = message.MessageID;
var messageChatID = message.ChatID;
var contentType = message.ContentType;
var target = message.Target;
var visibility = message.Visibility;
var state = message.State;
var sender = message.Sender;
var taggedProfile = message.TaggedProfile;
var creationDateUTC = message.CreationDateUTC;
var contentRawData = message.ContentRawData;
var customData = message.CustomData;
var textMessage = message.GetMessageBody();
var sticker = message.GetSticker();
var item = message.GetItem();
}
}
else
{
Debug.Log(result.Error.Message);
}
}
private void OnNewMessageAdded(ChatMessage message)
{
Debug.Log("new message added");
var messageID = message.MessageID;
}
}
CBSChatModule.GetOrCreateGroupChatByID - Get chat instance from custom id. Suitable for creating group chats for example.
using CBS;
using CBS.Models;
using CBS.Utils;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var groupID = "some group id";
// get chat instance
var chatInstance = ChatModule.GetOrCreateGroupChatByID(groupID);
// get chat history
chatInstance.GetChatHistory(OnGetChatMessages);
// subscribe to new message
chatInstance.OnNewMessage += OnNewMessageAdded;
// send message
chatInstance.SendMessage(new CBSSendTextMessageRequest
{
MessageBody = "new message",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
});
// send sticker
chatInstance.SendSticker(new CBSSendStickerMessageRequest
{
StickerID = "sticker id",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
});
// send item
chatInstance.SendItem(new CBSSendItemMessageRequest
{
InstanceID = "item instance id",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
});
}
private void OnGetChatMessages(CBSGetMessagesFromChatResult result)
{
if (result.IsSuccess)
{
var chatID = result.ChatID;
var messages = result.Messages;
foreach (var message in messages)
{
var messageID = message.MessageID;
var messageChatID = message.ChatID;
var contentType = message.ContentType;
var target = message.Target;
var visibility = message.Visibility;
var state = message.State;
var sender = message.Sender;
var taggedProfile = message.TaggedProfile;
var creationDateUTC = message.CreationDateUTC;
var contentRawData = message.ContentRawData;
var customData = message.CustomData;
var textMessage = message.GetMessageBody();
var sticker = message.GetSticker();
var item = message.GetItem();
}
}
else
{
Debug.Log(result.Error.Message);
}
}
private void OnNewMessageAdded(ChatMessage message)
{
Debug.Log("new message added");
var messageID = message.MessageID;
}
}
CBSChatModule.GetOrCreatePrivateChatWithProfile - Get private chat instance from custom id. Suitable for private chats, from lists of unread messages.
using CBS;
using CBS.Models;
using CBS.Utils;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var withProfileID = "friend profile id";
// get chat instance
var chatInstance = ChatModule.GetOrCreatePrivateChatWithProfile(withProfileID);
// get chat history
chatInstance.GetChatHistory(OnGetChatMessages);
// subscribe to new message
chatInstance.OnNewMessage += OnNewMessageAdded;
// send message
chatInstance.SendMessage(new CBSSendTextMessageRequest
{
MessageBody = "new message",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
});
// send sticker
chatInstance.SendSticker(new CBSSendStickerMessageRequest
{
StickerID = "sticker id",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
});
// send item
chatInstance.SendItem(new CBSSendItemMessageRequest
{
InstanceID = "item instance id",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
});
}
private void OnGetChatMessages(CBSGetMessagesFromChatResult result)
{
if (result.IsSuccess)
{
var chatID = result.ChatID;
var messages = result.Messages;
foreach (var message in messages)
{
var messageID = message.MessageID;
var messageChatID = message.ChatID;
var contentType = message.ContentType;
var target = message.Target;
var visibility = message.Visibility;
var state = message.State;
var sender = message.Sender;
var taggedProfile = message.TaggedProfile;
var creationDateUTC = message.CreationDateUTC;
var contentRawData = message.ContentRawData;
var customData = message.CustomData;
var textMessage = message.GetMessageBody();
var sticker = message.GetSticker();
var item = message.GetItem();
}
}
else
{
Debug.Log(result.Error.Message);
}
}
private void OnNewMessageAdded(ChatMessage message)
{
Debug.Log("new message added");
var messageID = message.MessageID;
}
}
CBSChatModule.GetChatIdBetweenTwoProfiles - Get unique id for chat between two profiles
using CBS;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private IProfile ProfileModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
ProfileModule = CBSModule.Get<CBSProfileModule>();
var withProfileID = "friend profile id";
var myProfileID = ProfileModule.ProfileID;
var chatID = ChatModule.GetChatIdBetweenTwoProfiles(myProfileID, withProfileID);
}
}
CBSChatModule.GetProfileDialogList - Get a list of the current profile conversations with whom there was previously a private conversation.
using CBS;
using CBS.Models;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
ChatModule.GetProfileDialogList(OnGet);
}
private void OnGet(CBSGetDialogListResult result)
{
if (result.IsSuccess)
{
var dialogList = result.DialogList;
foreach (var entry in dialogList)
{
var interlocutorProfile = entry.InterlocutorProfile;
var lastMessage = entry.LastMessage;
var badgeCount = entry.BadgeCount;
}
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSChatModule.GetProfileDialogBadge - Get count of unread private messages
using CBS;
using CBS.Models;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
ChatModule.GetProfileDialogBadge(OnGet);
}
private void OnGet(CBSBadgeResult result)
{
if (result.IsSuccess)
{
var unreadMessagesCount = result.Count;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSChatModule.GetMessagesFromChat - Get messages from chat history. Max count = 1000
using CBS;
using CBS.Models;
using CBS.Utils;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var chatID = "some chat id";
var maxMessges = 100;
ChatModule.GetMessagesFromChat(chatID, maxMessges, OnGet);
}
private void OnGet(CBSGetMessagesFromChatResult result)
{
if (result.IsSuccess)
{
var chatID = result.ChatID;
var messages = result.Messages;
foreach (var message in messages)
{
var messageID = message.MessageID;
var messageChatID = message.ChatID;
var contentType = message.ContentType;
var target = message.Target;
var visibility = message.Visibility;
var state = message.State;
var sender = message.Sender;
var taggedProfile = message.TaggedProfile;
var creationDateUTC = message.CreationDateUTC;
var contentRawData = message.ContentRawData;
var customData = message.CustomData;
var textMessage = message.GetMessageBody();
var sticker = message.GetSticker();
var item = message.GetItem();
}
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSChatModule.SendTextMessageToGroupChat - Send text message to group chat
using CBS;
using CBS.Models;
using CBS.Utils;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var chatID = "some group chat id";
var messageRequest = new CBSSendTextMessageRequest
{
MessageBody = "text message",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
};
ChatModule.SendTextMessageToGroupChat(chatID, messageRequest, OnSent);
}
private void OnSent(CBSSendChatMessageResult result)
{
if (result.IsSuccess)
{
var message = result.Message;
var messageID = message.MessageID;
var messageChatID = message.ChatID;
var contentType = message.ContentType;
var target = message.Target;
var visibility = message.Visibility;
var state = message.State;
var sender = message.Sender;
var taggedProfile = message.TaggedProfile;
var creationDateUTC = message.CreationDateUTC;
var contentRawData = message.ContentRawData;
var customData = message.CustomData;
var textMessage = message.GetMessageBody();
var sticker = message.GetSticker();
var item = message.GetItem();
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSChatModule.SendStickerMessageToGroupChat - Send sticker to group chat.
using CBS;
using CBS.Models;
using CBS.Utils;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var chatID = "some group chat id";
var messageRequest = new CBSSendStickerMessageRequest
{
StickerID = "sticker id",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
};
ChatModule.SendStickerMessageToGroupChat(chatID, messageRequest, OnSent);
}
private void OnSent(CBSSendChatMessageResult result)
{
if (result.IsSuccess)
{
var message = result.Message;
var messageID = message.MessageID;
var messageChatID = message.ChatID;
var contentType = message.ContentType;
var target = message.Target;
var visibility = message.Visibility;
var state = message.State;
var sender = message.Sender;
var taggedProfile = message.TaggedProfile;
var creationDateUTC = message.CreationDateUTC;
var contentRawData = message.ContentRawData;
var customData = message.CustomData;
var textMessage = message.GetMessageBody();
var sticker = message.GetSticker();
var item = message.GetItem();
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSChatModule.SendItemMessageToGroupChat - Send item to group chat. Item can only be picked up by one chat member
using CBS;
using CBS.Models;
using CBS.Utils;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var chatID = "some group chat id";
var messageRequest = new CBSSendItemMessageRequest
{
InstanceID = "item instance id",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
};
ChatModule.SendItemMessageToGroupChat(chatID, messageRequest, OnSent);
}
private void OnSent(CBSSendChatMessageResult result)
{
if (result.IsSuccess)
{
var message = result.Message;
var messageID = message.MessageID;
var messageChatID = message.ChatID;
var contentType = message.ContentType;
var target = message.Target;
var visibility = message.Visibility;
var state = message.State;
var sender = message.Sender;
var taggedProfile = message.TaggedProfile;
var creationDateUTC = message.CreationDateUTC;
var contentRawData = message.ContentRawData;
var customData = message.CustomData;
var textMessage = message.GetMessageBody();
var sticker = message.GetSticker();
var item = message.GetItem();
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSChatModule.SendTextMessageToPrivateChat - Send text message to private chat between two profiles
using CBS;
using CBS.Models;
using CBS.Utils;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var withProfileID = "some profile id";
var messageRequest = new CBSSendTextMessageRequest
{
MessageBody = "text message",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
};
ChatModule.SendTextMessageToPrivateChat(withProfileID, messageRequest, OnSent);
}
private void OnSent(CBSSendChatMessageResult result)
{
if (result.IsSuccess)
{
var message = result.Message;
var messageID = message.MessageID;
var messageChatID = message.ChatID;
var contentType = message.ContentType;
var target = message.Target;
var visibility = message.Visibility;
var state = message.State;
var sender = message.Sender;
var taggedProfile = message.TaggedProfile;
var creationDateUTC = message.CreationDateUTC;
var contentRawData = message.ContentRawData;
var customData = message.CustomData;
var textMessage = message.GetMessageBody();
var sticker = message.GetSticker();
var item = message.GetItem();
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSChatModule.SendStickerMessageToPrivateChat - Send sticker to private chat between two profiles
using CBS;
using CBS.Models;
using CBS.Utils;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var withProfileID = "some profile id";
var messageRequest = new CBSSendStickerMessageRequest
{
StickerID = "sticker id",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
};
ChatModule.SendStickerMessageToPrivateChat(withProfileID, messageRequest, OnSent);
}
private void OnSent(CBSSendChatMessageResult result)
{
if (result.IsSuccess)
{
var message = result.Message;
var messageID = message.MessageID;
var messageChatID = message.ChatID;
var contentType = message.ContentType;
var target = message.Target;
var visibility = message.Visibility;
var state = message.State;
var sender = message.Sender;
var taggedProfile = message.TaggedProfile;
var creationDateUTC = message.CreationDateUTC;
var contentRawData = message.ContentRawData;
var customData = message.CustomData;
var textMessage = message.GetMessageBody();
var sticker = message.GetSticker();
var item = message.GetItem();
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSChatModule.SendItemMessageToPrivateChat - Send item to private chat between two profiles. Item can only be picked up by one chat member
using CBS;
using CBS.Models;
using CBS.Utils;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var withProfileID = "some profile id";
var messageRequest = new CBSSendItemMessageRequest
{
InstanceID = "item instance id",
TaggedProfileID = "profile id to tag",
CustomData = "additional data"
};
ChatModule.SendItemMessageToPrivateChat(withProfileID, messageRequest, OnSent);
}
private void OnSent(CBSSendChatMessageResult result)
{
if (result.IsSuccess)
{
var message = result.Message;
var messageID = message.MessageID;
var messageChatID = message.ChatID;
var contentType = message.ContentType;
var target = message.Target;
var visibility = message.Visibility;
var state = message.State;
var sender = message.Sender;
var taggedProfile = message.TaggedProfile;
var creationDateUTC = message.CreationDateUTC;
var contentRawData = message.ContentRawData;
var customData = message.CustomData;
var textMessage = message.GetMessageBody();
var sticker = message.GetSticker();
var item = message.GetItem();
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSChatModule.ChangeMessageText - Change message text property. Doesn't work with "Items" or "Stickers" messages
using CBS;
using CBS.Models;
using CBS.Utils;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var chatID = "some chat id";
var messageID = "message id";
var textToChange = "new text";
ChatModule.ChangeMessageText(messageID, chatID, textToChange, OnChange);
}
private void OnChange(CBSModifyMessageResult result)
{
if (result.IsSuccess)
{
var message = result.ModifiedMessage;
var messageID = message.MessageID;
var messageChatID = message.ChatID;
var contentType = message.ContentType;
var target = message.Target;
var visibility = message.Visibility;
var state = message.State;
var sender = message.Sender;
var taggedProfile = message.TaggedProfile;
var creationDateUTC = message.CreationDateUTC;
var contentRawData = message.ContentRawData;
var customData = message.CustomData;
var textMessage = message.GetMessageBody();
var sticker = message.GetSticker();
var item = message.GetItem();
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSChatModule.DeleteChatMessage - Mark chat message as deleted. Only the owner or moderator can delete a message
using CBS;
using CBS.Models;
using CBS.Utils;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var chatID = "some chat id";
var messageID = "message id";
ChatModule.DeleteChatMessage(messageID, chatID, OnDelete);
}
private void OnDelete(CBSModifyMessageResult result)
{
if (result.IsSuccess)
{
var message = result.ModifiedMessage;
var messageID = message.MessageID;
var messageChatID = message.ChatID;
var contentType = message.ContentType;
var target = message.Target;
var visibility = message.Visibility;
var state = message.State;
var sender = message.Sender;
var taggedProfile = message.TaggedProfile;
var creationDateUTC = message.CreationDateUTC;
var contentRawData = message.ContentRawData;
var customData = message.CustomData;
var textMessage = message.GetMessageBody();
var sticker = message.GetSticker();
var item = message.GetItem();
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSChatModule.BanProfile - Mute profile in chat for a time. Action available only for moderators
using CBS;
using CBS.Models;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var chatID = "some chat id";
var profileIDToBan = "some profile ID";
var reason = "some reason";
var banForHours = 10;
ChatModule.BanProfile(profileIDToBan, chatID, reason, banForHours, OnBan);
}
private void OnBan(CBSBanProfileInChatResult result)
{
if (result.IsSuccess)
{
var banDetail = result.BanDetail;
var chatID = banDetail.ChatID;
var bannedUntil = banDetail.BannedUntil;
var bannedByModeratorID = banDetail.BannedByModeratorID;
var reason = banDetail.Reason;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSChatModule.GetStickersPack - Get list of available stickers
using CBS;
using CBS.Models;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
ChatModule.GetStickersPack(OnGet);
}
private void OnGet(CBSGetStickersResult result)
{
if (result.IsSuccess)
{
var stickers = result.Stickers;
foreach (var sticker in stickers)
{
var stickerID = sticker.ID;
var stickerSprite = sticker.GetSprite();
}
}
else
{
Debug.Log(result.Error.Message);
}
}
}
CBSChatModule.ClaimItemFromChat - Claim item from message if available.
using CBS;
using CBS.Models;
using UnityEngine;
public class ChatExample : MonoBehaviour
{
private ICBSChat ChatModule { get; set; }
private void Start()
{
ChatModule = CBSModule.Get<CBSChatModule>();
var chatID = "some chat id";
var messageID = "message id";
ChatModule.ClaimItemFromChat(chatID, messageID, OnClaim);
}
private void OnClaim(CBSClaimItemFromMessageResult result)
{
if (result.IsSuccess)
{
var senderProfileID = result.SenderProfileID;
var grantedItem = result.GrantedItem;
}
else
{
Debug.Log(result.Error.Message);
}
}
}
Last updated