$sendMessage_Request method
- @experimental
- required String message,
- required String token,
- String? referenceId,
- int? replyTo,
- BotSendMessageSilent? silent,
- BotSendMessageApiVersion? apiVersion,
- bool? oCSAPIRequest,
Sends a new chat message to the given room.
The author and timestamp are automatically set to the current user/guest and time.
Returns a DynamiteRequest backing the sendMessage operation.
Throws a DynamiteApiException if the API call does not return an expected status code.
Parameters:
messageThe message to send.referenceIdFor the message to be able to later identify it again. Defaults to"".replyToParent id which this message is a reply to. Defaults to0.silentIf sent silent the chat message will not create any notifications. Defaults to0.apiVersionDefaults to"v1".tokenConversation token.oCSAPIRequestRequired to be true for the API request to pass. Defaults totrue.
Status codes:
- 201: Message sent successfully
- 400: When the replyTo is invalid or message is empty
- 401: Sending message is not allowed
- 413: Message too long
See:
- sendMessage for a method executing this request and parsing the response.
- $sendMessage_Serializer for a converter to parse the
Responsefrom an executed this request.
Implementation
@_i2.experimental
_i3.Request $sendMessage_Request({
required String message,
required String token,
String? referenceId,
int? replyTo,
BotSendMessageSilent? silent,
BotSendMessageApiVersion? apiVersion,
bool? oCSAPIRequest,
}) {
final _parameters = <String, Object?>{};
final $message = _$jsonSerializers.serialize(message, specifiedType: const FullType(String));
_parameters['message'] = $message;
final $token = _$jsonSerializers.serialize(token, specifiedType: const FullType(String));
_i4.checkString(
$token,
'token',
pattern: RegExp(r'^[a-z0-9]{4,30}$'),
);
_parameters['token'] = $token;
var $referenceId = _$jsonSerializers.serialize(referenceId, specifiedType: const FullType(String));
$referenceId ??= '';
_parameters['referenceId'] = $referenceId;
var $replyTo = _$jsonSerializers.serialize(replyTo, specifiedType: const FullType(int));
$replyTo ??= 0;
_parameters['replyTo'] = $replyTo;
var $silent = _$jsonSerializers.serialize(silent, specifiedType: const FullType(BotSendMessageSilent));
$silent ??= 0;
_parameters['silent'] = $silent;
var $apiVersion = _$jsonSerializers.serialize(apiVersion, specifiedType: const FullType(BotSendMessageApiVersion));
$apiVersion ??= 'v1';
_parameters['apiVersion'] = $apiVersion;
final _path = _i5.UriTemplate(
'/ocs/v2.php/apps/spreed/api/{apiVersion}/bot/{token}/message{?message*,referenceId*,replyTo*,silent*}',
).expand(_parameters);
final _uri = Uri.parse('${_rootClient.baseURL}$_path');
final _request = _i3.Request('post', _uri);
_request.headers['Accept'] = 'application/json';
// coverage:ignore-start
final authentication = _rootClient.authentications?.firstWhereOrNull(
(auth) => switch (auth) {
_i1.DynamiteHttpBearerAuthentication() || _i1.DynamiteHttpBasicAuthentication() => true,
_ => false,
},
);
if (authentication != null) {
_request.headers.addAll(
authentication.headers,
);
}
// coverage:ignore-end
var $oCSAPIRequest = _$jsonSerializers.serialize(oCSAPIRequest, specifiedType: const FullType(bool));
$oCSAPIRequest ??= true;
_request.headers['OCS-APIRequest'] = const _i4.HeaderEncoder().convert($oCSAPIRequest);
return _request;
}