SendChannelMessage - Amazon Chime SDK

SendChannelMessage

Sends a message to a particular channel that the member is a part of.

Note

The x-amz-chime-bearer request header is mandatory. Use the ARN of the AppInstanceUser or AppInstanceBot that makes the API call as the value in the header.

Also, STANDARD messages can be up to 4KB in size and contain metadata. Metadata is arbitrary, and you can use it in a variety of ways, such as containing a link to an attachment.

CONTROL messages are limited to 30 bytes and do not contain metadata.

Request Syntax

POST /channels/channelArn/messages HTTP/1.1 x-amz-chime-bearer: ChimeBearer Content-type: application/json { "ClientRequestToken": "string", "Content": "string", "ContentType": "string", "MessageAttributes": { "string" : { "StringValues": [ "string" ] } }, "Metadata": "string", "Persistence": "string", "PushNotification": { "Body": "string", "Title": "string", "Type": "string" }, "SubChannelId": "string", "Target": [ { "MemberArn": "string" } ], "Type": "string" }

URI Request Parameters

The request uses the following URI parameters.

channelArn

The ARN of the channel.

Length Constraints: Minimum length of 5. Maximum length of 1600.

Pattern: arn:[a-z0-9-\.]{1,63}:[a-z0-9-\.]{0,63}:[a-z0-9-\.]{0,63}:[a-z0-9-\.]{0,63}:[^/].{0,1023}

Required: Yes

ChimeBearer

The ARN of the AppInstanceUser or AppInstanceBot that makes the API call.

Length Constraints: Minimum length of 5. Maximum length of 1600.

Pattern: arn:[a-z0-9-\.]{1,63}:[a-z0-9-\.]{0,63}:[a-z0-9-\.]{0,63}:[a-z0-9-\.]{0,63}:[^/].{0,1023}

Required: Yes

Request Body

The request accepts the following data in JSON format.

ClientRequestToken

The Idempotency token for each client request.

Type: String

Length Constraints: Minimum length of 2. Maximum length of 64.

Pattern: [-_a-zA-Z0-9]*

Required: Yes

Content

The content of the channel message.

Type: String

Length Constraints: Minimum length of 1.

Pattern: [\s\S]*

Required: Yes

ContentType

The content type of the channel message.

Type: String

Length Constraints: Minimum length of 0. Maximum length of 45.

Pattern: [\s\S]*

Required: No

MessageAttributes

The attributes for the message, used for message filtering along with a FilterRule defined in the PushNotificationPreferences.

Type: String to MessageAttributeValue object map

Key Length Constraints: Minimum length of 1. Maximum length of 64.

Key Pattern: [\s\S]*

Required: No

Metadata

The optional metadata for each message.

Type: String

Length Constraints: Minimum length of 0. Maximum length of 1024.

Pattern: .*

Required: No

Persistence

Boolean that controls whether the message is persisted on the back end. Required.

Type: String

Valid Values: PERSISTENT | NON_PERSISTENT

Required: Yes

PushNotification

The push notification configuration of the message.

Type: PushNotificationConfiguration object

Required: No

SubChannelId

The ID of the SubChannel in the request.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 128.

Pattern: [-_a-zA-Z0-9]*

Required: No

Target

The target of a message. Must be a member of the channel, such as another user, a bot, or the sender. Only the target and the sender can view targeted messages. Only users who can see targeted messages can take actions on them. However, administrators can delete targeted messages that they can’t see.

Type: Array of Target objects

Array Members: Fixed number of 1 item.

Required: No

Type

The type of message, STANDARD or CONTROL.

STANDARD messages can be up to 4KB in size and contain metadata. Metadata is arbitrary, and you can use it in a variety of ways, such as containing a link to an attachment.

CONTROL messages are limited to 30 bytes and do not contain metadata.

Type: String

Valid Values: STANDARD | CONTROL

Required: Yes

Response Syntax

HTTP/1.1 201 Content-type: application/json { "ChannelArn": "string", "MessageId": "string", "Status": { "Detail": "string", "Value": "string" }, "SubChannelId": "string" }

Response Elements

If the action is successful, the service sends back an HTTP 201 response.

The following data is returned in JSON format by the service.

ChannelArn

The ARN of the channel.

Type: String

Length Constraints: Minimum length of 5. Maximum length of 1600.

Pattern: arn:[a-z0-9-\.]{1,63}:[a-z0-9-\.]{0,63}:[a-z0-9-\.]{0,63}:[a-z0-9-\.]{0,63}:[^/].{0,1023}

MessageId

The ID string assigned to each message.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 128.

Pattern: [-_a-zA-Z0-9]*

Status

The status of the channel message.

Type: ChannelMessageStatusStructure object

SubChannelId

The ID of the SubChannel in the response.

Type: String

Length Constraints: Minimum length of 1. Maximum length of 128.

Pattern: [-_a-zA-Z0-9]*

Errors

For information about the errors that are common to all actions, see Common Errors.

BadRequestException

The input parameters don't match the service's restrictions.

HTTP Status Code: 400

ConflictException

The request could not be processed because of conflict in the current state of the resource.

HTTP Status Code: 409

ForbiddenException

The client is permanently forbidden from making the request.

HTTP Status Code: 403

ServiceFailureException

The service encountered an unexpected error.

HTTP Status Code: 500

ServiceUnavailableException

The service is currently unavailable.

HTTP Status Code: 503

ThrottledClientException

The client exceeded its request rate limit.

HTTP Status Code: 429

UnauthorizedClientException

The client is not currently authorized to make the request.

HTTP Status Code: 401

See Also

For more information about using this API in one of the language-specific AWS SDKs, see the following: