.NET
Open Channel Advanced

Open Channel: Advanced

This page explains the premium features of open channels. Some are available only to a paying user.


Send an admin message

If you are using the Custom Plan, you can send an admin message to an open channel using the SendBird Dashboard or the Platform API. To send the admin message through your dashboard, on the Moderation > Open Channels panel, select an open channel, find a message box below, click the Admin Message tab, and then write your message in the box. An admin message is limited to 1,000 characters.

Note: For clients using the Free Plan, a suggesting message to upgrade to the Custom Plan will be returned when attempting to send an admin message using the Platform API.


Add a channel cover image

When creating a channel, you can add a cover image by specifying an image URL or file.

Light Color Skin
Copy
OpenChannel.CreateChannel(NAME, COVER_IMAGE_OR_URL, DATA, (OpenChannel openChannel, SendBirdException e) => {
    if (e != null) {
        // Error.
        return;
    }
});

You can fetch the cover image URL using the CoverUrl property. You can also update a channel's cover image by calling the UpdateChannel() method.


Add a custom channel type

When creating a channel, you can additionally specify a custom channel type for further channel grouping. This custom type takes on the form of a String, and can be handy in searching or filtering channels.

Note: The DATA and CUSTOM_TYPE are both String fields that allow you to append information to your channels. As mentioned above, a common use case for the CUSTOM_TYPE is to contain information for channel grouping (for example, categorizing School and Work channels). However, both these fields can be flexibly utilized.

Light Color Skin
Copy
OpenChannel.CreateChannel(NAME, COVER_IMAGE_OR_URL, DATA, CUSTOM_TYPE, (OpenChannel openChannel, SendBirdException e) => {
    if (e != null) {
        // Error.
        return;
    }
});

The CustomType property contains the channel's custom type.


Add a custom message type

When sending a message, you can additionally specify a custom message type for further message grouping. This custom type takes on the form of a String, and can be useful in searching or filtering messages.

Note: The DATA and CUSTOM_TYPE are both String fields that allow you to append information to your messages. As mentioned above, a common use case for the CUSTOM_TYPE is to contain information for message grouping (for example, categorizing Notes and Contacts messages). However, both these fields can be flexibly utilized.

To embed a custom type into a message, pass a String value as a parameter to the channel.SendUserMessage() or channel.SendFileMessage() method.

Light Color Skin
Copy
openChannel.SendUserMessage(MESSAGE, DATA, CUSTOM_TYPE, (UserMessage userMessage, SendBirdException e) => {
    if (e != null) {
        // Error.
        return;
    }
});

The CustomType property contains the message's custom type.


You search for specific channels by adding a keyword to your OpenChannelListQuery instance. There are two types of keywords: a Name and a URL. The code below shows the query instance which returns the list of open channels that partially match the specified Name keyword in their names.

Light Color Skin
Copy
channelListQuery = OpenChannel.CreateOpenChannelListQuery();
channelListQuery.NameKeyword = "NameKeyword";

channelListQuery.Next((List<OpenChannel> channels, SendBirdException e) => {
    if (e != null) {
        // Error.
        return;
    }

    // Returns a List of channels that have "NameKeyword" in their names.
});

The following shows the query instance which returns a list of open channels that partially match the specified URL keyword in the URLs of the channels.

Light Color Skin
Copy
channelListQuery = OpenChannel.CreateOpenChannelListQuery();
channelListQuery.UrlKeyword = "UrlKeyword";

channelListQuery.Next((List<OpenChannel> channels, SendBirdException e) => {
    if (e != null) {
        // Error.
        return;
    }

    // Returns a List of channels that have "NameKeyword" in their names.
});

Message auto-translation

It is possible for text messages to be sent in different languages through the SendBird's auto-translation feature. When sending a text message, pass in a List of language codes to the SendUserMessage() to request translated messages in the corresponding lguages.

Light Color Skin
Copy
List<string> targetLangs = new List<string>();
targetLangs.Add("es");
targetLangs.Add("ko");

openChannel.SendUserMessage(MESSAGE, DATA, CUSTOM_TYPE, targetLangs, (UserMessage userMessage, SendBirdException e) => {
        if (e != null) {
                // Error.
                return;
        }
});

You can obtain translations of a message through the Translations property. This contains a Dictionary containing the language codes and translations.

Light Color Skin
Copy
SendBirdClient.ChannelHandler ch = new SendBirdClient.ChannelHandler();
ch.OnMessageReceived = (BaseChannel baseChannel, BaseMessage baseMessage) => {
        // Received a chat message.
        // ((UserMessage)baseMessage).Translations["es"];
        // ((UserMessage)baseMessage).Translations["ko"];
};
SendBirdClient.AddChannelHandler(UNIQUE_HANDLER_ID, ch);

Note: The message auto-translation supports 53 languages. For the language code table, see the Miscellaneous > Supported languages. As this is one of SendBird's premium features, please contact our sales team for further assistance.