Class SearchMessagesRequest
Request message for searching messages.
Implements
Inherited Members
Namespace: Google.Apis.HangoutsChat.v1.Data
Assembly: Google.Apis.HangoutsChat.v1.dll
Syntax
public class SearchMessagesRequest : IDirectResponseSchema
Properties
ETag
The ETag of the item.
Declaration
public virtual string ETag { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
Filter
Required. A search query. The query can specify one or more search keywords, which are used to filter the
results, You can also filter the results using the following message fields: - create_time: Accepts a
timestamp in RFC-3339 format and the supported comparison
operators are: < and >=. - sender.name: The resource name of the sender
(users/{user}). Only supports =. You can use the e-mail as an alias for {user}. For example,
users/example@gmail.com, where example@gmail.com is the e-mail of the Google Chat user. - space.name:
The resource name of the space where the message is posted. (spaces/{space}). Only supports =. If this
filter is not set, the search is performed across all direct messages and spaces the user has access to as a
space member. - space.display_name: Supports the operator : (has) and filters spaces based on a partial
match of their display name. Results are limited to the top five space matches. For example,
space.display_name:Project searches for messages in the top five spaces that contain the word "Project" in
their display names. - attachment: Supports the operator :* (has any) to check for the presence of
attachments. If attachment:* is specified, only messages that have at least one attachment are returned. -
annotations.user_mentions.user.name: The resource name of the mentioned user (users/{user}). Only
supports : (has). For example: annotations.user_mentions.user.name:"users/1234567890" returns only
messages that contain a mention to the specified user. Alternatively, the alias me can be used to filter
for messages that mention the caller user, for example: annotations.user_mentions.user.name:users/me. You
can also use the e-mail as an alias for {user}, for example, users/example@gmail.com. For advanced
filtering, the following functions are also available: - has_link(): Returns only messages that have at
least one hyperlink in the message text. - is_unread(): Filters out messages that have been read by the
calling user. Using the space.display_name filter requires that the calling credentials include one of the
following authorization
scopes: -
https://www.googleapis.com/auth/chat.spaces.readonly - https://www.googleapis.com/auth/chat.spaces Using
the is_unread() filter requires that the calling credentials include one of the following authorization
scopes: -
https://www.googleapis.com/auth/chat.users.readstate.readonly -
https://www.googleapis.com/auth/chat.users.readstate Across different fields, only AND operators are
supported. A valid example is sender.name = "users/1234567890" AND is_unread(). The word AND is optional
and is implied if omitted. For example, sender.name = "users/1234567890" is_unread() is valid and is
equivalent to the previous example. An invalid example is sender.name = "users/1234567890" OR is_unread()
because OR is not supported between different fields. Among the same field: - create_time supports only
AND, and can only be used to represent an interval, such as create_time >= "2022-01-01T00:00:00+00:00" AND create_time < "2023-01-01T00:00:00+00:00". - sender.name supports
only the OR operator, for example: sender.name = "users/1234567890" OR sender.name = "users/0987654321".
space.namesupports only theORoperator, for example:space.name = "spaces/ABCDEFGH" OR space.name = "spaces/QWERTYUI". -space.display_namesupports the operatorsANDandOR, but not a mix of both. For example:space.display_name:Project AND space.display_name:Tasksreturns messages that are in spaces with display names containing bothProjectandTasks, whereasspace.display_name:Project OR space.display_name:Tasksreturns messages that are in spaces with display names containing eitherProjectorTasksor both. -annotations.user_mentions.user.namesupports the operatorsANDandOR, but not a mix of both. For example:annotations.user_mentions.user.name:"users/1234567890" AND annotations.user_mentions.user.name:"users/0987654321"returns only messages that mentions both users, whereasannotations.user_mentions.user.name:"users/1234567890" OR annotations.user_mentions.user.name:"users/0987654321"returns messages that mention either user or both. Parentheses are required to disambiguate operator precedence when combiningANDandORoperators in the same query. For example:(sender.name="users/me" OR sender.name="users/123456") AND is_unread(). Otherwise, parentheses are optional. The following example queries are valid:
"Pending reports" AND
create_time >= "2023-01-01T00:00:00Z" sender.name = "users/example@gmail.com"
annotations.user_mentions.user.name:"users/0987654321" attachment:* AND space.name = "spaces/ABCDEFGH" tasks
AND is_unread() AND sender.name = "users/1234567890" "things to do" "urgent" (sender.name =
"users/1234567890") AND (create_time < "2023-05-01T00:00:00Z") tasks AND space.name =
"spaces/ABCDEFGH" AND has_link() "project one" is_unread() space.display_name:Project tasks
The maximum
query length is 1,000 characters. Invalid queries are rejected by the server with an INVALID_ARGUMENT
error.
Declaration
[JsonProperty("filter")]
public virtual string Filter { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
MarkupSyntax
Optional. Specifies the desired output syntax for the Chat message formatted_text field.
Declaration
[JsonProperty("markupSyntax")]
public virtual string MarkupSyntax { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
OrderBy
Optional. How the results list is ordered. Supported attributes to order by are: - create_time: Sorts the
results by the time of the message creation. Default value. - relevance: Sorts the results by relevance.
Developer Preview. The default ordering is create_time desc. Only a single order per query (create_time or relevance) is supported. Only descending order
(desc) is supported, and it must be specified after the order attribute.
Declaration
[JsonProperty("orderBy")]
public virtual string OrderBy { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
PageSize
Optional. The maximum number of results to return. The service may return fewer than this value. If unspecified, at most 25 are returned. The maximum value is 100. If you use a value more than 100, it's automatically changed to 100.
Declaration
[JsonProperty("pageSize")]
public virtual int? PageSize { get; set; }
Property Value
| Type | Description |
|---|---|
| int? |
PageToken
Optional. A token, received from the previous search messages call. Provide this parameter to retrieve the subsequent page. When paginating, all other parameters provided should match the call that provided the page token. Passing different values to the other parameters might lead to unexpected results.
Declaration
[JsonProperty("pageToken")]
public virtual string PageToken { get; set; }
Property Value
| Type | Description |
|---|---|
| string |
View
Optional. Specifies what kind of search results view to return. The default is SEARCH_MESSAGES_VIEW_BASIC.
Declaration
[JsonProperty("view")]
public virtual string View { get; set; }
Property Value
| Type | Description |
|---|---|
| string |