sendMessage method
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/plainandtext/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);
}