create method
Creates a message in a Google Chat space.
For an example, see Create a message. Calling this method requires authentication and supports the following authentication types: - For text messages, user authentication or app authentication are supported. - For card messages, only app authentication is supported. (Only Chat apps can create card messages.)
request
- The metadata request object.
Request parameters:
parent
- Required. The resource name of the space in which to create a
message. Format: spaces/{space}
Value must have pattern ^spaces/\[^/\]+$
.
messageId
- Optional. A custom ID for a message. Lets Chat apps get,
update, or delete a message without needing to store the system-assigned
ID in the message's resource name (represented in the message name
field). The value for this field must meet the following requirements: *
Begins with client-
. For example, client-custom-name
is a valid custom
ID, but custom-name
is not. * Contains up to 63 characters and only
lowercase letters, numbers, and hyphens. * Is unique within a space. A
Chat app can't use the same custom ID for different messages. For details,
see
Name a message.
messageReplyOption
- Optional. Specifies whether a message starts a
thread or replies to one. Only supported in named spaces.
Possible string values are:
- "MESSAGE_REPLY_OPTION_UNSPECIFIED" : Default. Starts a new thread. Using
this option ignores any thread ID or
thread_key
that's included. - "REPLY_MESSAGE_FALLBACK_TO_NEW_THREAD" : Creates the message as a reply
to the thread specified by thread ID or
thread_key
. If it fails, the message starts a new thread instead. - "REPLY_MESSAGE_OR_FAIL" : Creates the message as a reply to the thread
specified by thread ID or
thread_key
. If a newthread_key
is used, a new thread is created. If the message creation fails, aNOT_FOUND
error is returned instead.
requestId
- Optional. A unique request ID for this message. Specifying
an existing request ID returns the message created with that ID instead of
creating a new message.
threadKey
- Optional. Deprecated: Use thread.thread_key instead. ID for
the thread. Supports up to 4000 characters. To start or add to a thread,
create a message and specify a threadKey
or the thread.name. For example
usage, see
Start or reply to a message thread.
$fields
- Selector specifying which fields to include in a partial
response.
Completes with a Message.
Completes with a commons.ApiRequestError if the API endpoint returned an error.
If the used http.Client
completes with an error when making a REST call,
this method will complete with the same error.
Implementation
async.Future<Message> create(
Message request,
core.String parent, {
core.String? messageId,
core.String? messageReplyOption,
core.String? requestId,
core.String? threadKey,
core.String? $fields,
}) async {
final body_ = convert.json.encode(request);
final queryParams_ = <core.String, core.List<core.String>>{
if (messageId != null) 'messageId': [messageId],
if (messageReplyOption != null)
'messageReplyOption': [messageReplyOption],
if (requestId != null) 'requestId': [requestId],
if (threadKey != null) 'threadKey': [threadKey],
if ($fields != null) 'fields': [$fields],
};
final url_ = 'v1/' + core.Uri.encodeFull('$parent') + '/messages';
final response_ = await _requester.request(
url_,
'POST',
body: body_,
queryParams: queryParams_,
);
return Message.fromJson(response_ as core.Map<core.String, core.dynamic>);
}