sendMessage method

Future<SendMessageResponse> sendMessage({
  1. required String connectionToken,
  2. required String content,
  3. required String contentType,
  4. String? clientToken,
})

Sends a message.

For security recommendations, see Connect Customer Chat security best practices. The Amazon Connect Participant Service APIs do not use Signature Version 4 authentication.

May throw AccessDeniedException. May throw InternalServerException. May throw ThrottlingException. May throw ValidationException.

Parameter connectionToken : The authentication token associated with the connection.

Parameter content : The content of the message.

  • For text/plain and text/markdown, the Length Constraints are Minimum of 1, Maximum of 1024.
  • For application/json, the Length Constraints are Minimum of 1, Maximum of 12000.
  • For application/vnd.amazonaws.connect.message.interactive.response, the Length Constraints are Minimum of 1, Maximum of 12288.

Parameter contentType : The type of the content. Possible types are text/plain, text/markdown, application/json, and application/vnd.amazonaws.connect.message.interactive.response.

Supported types on the contact are configured through SupportedMessagingContentTypes on StartChatContact and StartOutboundChatContact.

For Apple Messages for Business, SMS, and WhatsApp Business Messaging contacts, only text/plain is supported.

Parameter clientToken : A unique, case-sensitive identifier that you provide to ensure the idempotency of the request. If not provided, the Amazon Web Services SDK populates this field. For more information about idempotency, see Making retries safe with idempotent APIs.

Implementation

Future<SendMessageResponse> sendMessage({
  required String connectionToken,
  required String content,
  required String contentType,
  String? clientToken,
}) async {
  final headers = <String, String>{
    'X-Amz-Bearer': connectionToken.toString(),
  };
  final $payload = <String, dynamic>{
    'Content': content,
    'ContentType': contentType,
    'ClientToken': clientToken ?? _s.generateIdempotencyToken(),
  };
  final response = await _protocol.send(
    payload: $payload,
    method: 'POST',
    requestUri: '/participant/message',
    headers: headers,
    exceptionFnMap: _exceptionFns,
  );
  return SendMessageResponse.fromJson(response);
}