The Chat SDK supports the URL link preview for both open channels and group channels when a message text contains the URL of a web page. This feature is turned on by default for Sendbird applications. If this isn't available for your Sendbird application, see this page and contact us on the Sendbird Dashboard to enable the feature.
OGMetaData
If a BaseMessage
object includes a valid URL of a website, the object can contain OGMetaData
, a class that holds OG metadata information such as title, URL, description, and default image of an OG object.
Note: Some websites don’t provide the OG metadata. In that case, even though the OG protocol states them as requirements, all of the four properties can be
null
.
List of properties
Property name | Description |
---|---|
title | The title of the OG object as it should appear within the graph. The value can be |
url | The canonical URL of the object that can be used as its permanent ID in the graph. The value can be set to |
desc | The description of the object. The value can be set to |
defaultImage | An |
OGImage
The OGImage
instance holds image-related data for an OGMetaData
can also have six optional structured properties of URL, secure URL, type, width, height, and alt. Except for width and height, other fields such as URL, secure URL, type, and alt can be set to null
. If the target website doesn’t provide width and height data, the value of those two fields are set to 0
.
List of properties
Property name | Description |
---|---|
url | The URL of an image object within the Open Graph. The value can be set to |
secureUrl | An alternative URL to use if the webpage requires |
type | A media type or MIME type of this image. The value can be set to |
width | The number of pixels horizontal. When the value is unavailable, this method returns |
height | The number of pixels vertical. When the value is unavailable, this method returns |
alt | The description of what is in the image, not a caption of the image. The alt attribute is designed to provide a fuller context of the object and help users better understand it when they can’t load or see the image. The value can be set to |
How it works
If a user sends a message with a web page URL and the linked web page possesses Open Graph (OG) tags, or OG metadata, the Sendbird server parses the message content, extracts the URL in the message, gets the OG metadata from it, and creates an OG metadata object for the message. Then message recipients will get the parsed message with its OG metadata through the onMessage()
method in the channel event handler of the SDK. On the other hand, the message sender will do the same through onMessageUpdated()
.
Displaying an OG metadata object is available for two subtypes of BaseMessage
: UserMessage
and AdminMessage
. If the content of either a UserMessage
or AdminMessage
object includes a web page URL containing OG metadata, the BaseMessage.ogMetaData
property returns OGMetaData
and OGImage
objects.
If the Sendbird server doesn’t have cache memory of the OG metadata of the given URL, ogMetaData
can be null
due to the time it takes to fetch the OG metadata from a remote web page. In the meantime, the message text containing the URL will be delivered first to message recipients’ client app through the onMessageUpdated()
method. When the server completes fetching, the onMessageUpdated()
method will be called and the message with its OGMetaData
object will be delivered to the recipients’ client app. However, if the Sendbird server has already cached the OG metadata of the URL, BaseMessage.ogMetaData
returns the message and its OGMetaData
object instantly and the onMessageUpdated()
method won’t be called.