-
Notifications
You must be signed in to change notification settings - Fork 484
Users Chat
- Introduction
- Set up a Chat Bot
- API documentation
- Query Documentation
- Definitions
- Chat Space Permissions
- Manage Chat Spaces
- Display Chat Spaces
- Manage Chat Members
- Display Chat Members
- Manage Chat Messages
- Display Chat Messages
- Display Chat Events
- Manage Chat Emojis
- Display Chat Emojis
- Bulk Operations
To use these commands y 8000 ou must update your service account authorization.
gam user user@domain.com update serviceaccount
[*] 3) Chat API - Custom Emojis (supports readonly)
[*] 4) Chat API - Memberships (supports readonly)
[*] 5) Chat API - Memberships Admin (supports readonly)
[*] 6) Chat API - Messages (supports readonly)
[*] 7) Chat API - Spaces (supports readonly)
[*] 8) Chat API - Spaces Admin (supports readonly)
[*] 9) Chat API - Spaces Delete
[*] 10) Chat API - Spaces Delete Admin
Added use_chat_admin_access
Boolean variable to gam.cfg
.
* When False, GAM uses user access when making all Chat API calls. For calls that support admin access,
this can be overridden with the asadmin command line option.
* When True, GAM uses admin access for Chat API calls that support admin access; other calls will use user access.
* Default: False
Google requires that you have a Chat Bot configured in order to use the Chat API; set up a Chat Bot as described in the next section.
- Run the command
gam setup chat
; it will point you to a URL to configure your Chat Bot. - Enter an App name and Description of your choosing.
- For the Avatar URL you can use
https://dummyimage.com/384x256/4d4d4d/0011ff.png&text=+GAM
or a public URL to an image of your own choosing. - In Functionality, uncheck both "Receive 1:1 messages" and "Join spaces and group conversations"
- In Connection settings, choose "Cloud Pub/Sub" and enter
projects/<ProjectID>/topics/no-topic
for the Topic Name. Replace<ProjectID>
with your GAM project ID. GAM doesn't yet listen to pub/sub so this option is not used. - In Visibility, uncheck "Make this Chat app available to specific people and groups in Domain Workspace".
- Click Save.
- Overview
- Chat API
- Chat API - Custom Emojis
- Chat API - Members
- Chat API - Messages
- Chat API - Events
- Apps in Google Chat
- Manage customemoji permissions
- Manage Spaces in Admin Console
- Predefined permission settings
<UserTypeEntity>
-
Drive File Selection for symbols not listed here, such as
<DriveFileIDEntity>
- Command data from Google Docs/Sheets/Storage
<StorageBucketName> ::= <String>
<StorageObjectName> ::= <String>
<StorageBucketObjectName> ::=
https://storage.cloud.google.com/<StorageBucketName>/<StorageObjectName>|
https://storage.googleapis.com/<StorageBucketName>/<StorageObjectName>|
gs://<StorageBucketName>/<StorageObjectName>|
<StorageBucketName>/<StorageObjectName>
<UserGoogleDoc> ::=
<EmailAddress> <DriveFileIDEntity>|<DriveFileNameEntity>|(<SharedDriveEntity> <SharedDriveFileNameEntity>)
<ChatContent> ::=
((text <String>)|
(textfile <FileName> [charset <Charset>])|
(gdoc <UserGoogleDoc>)|
(gcsdoc <StorageBucketObjectName>))
<ChatEmojiName> ::= :[0-9a-z_-]+:
<ChatEmoji> ::= emojiname <ChatEmojiName> | customemojis/<String>
<ChatEvent> ::= spaces/<String>/spaceEvents/<String>
<ChatMember> ::= spaces/<String>/members/<String>
<ChatMemberList> ::= "<ChatMember>(,<ChatMember>)*"
<ChatMessage> ::= spaces/<String>/messages/<String>
<ChatSpace> ::= spaces/<String> | space <String> | space spaces/<String>
<ChatThread> ::= spaces/<String>/threads/<String>
<ChatSpaceType> ::=
space|
groupchat|
directmessage
<ChatSpaceTypeList> ::= "<ChatSpaceType>(,<ChatSpaceType>)*"
<ChatMessageID> ::= client-<String>
<String> must contain only lowercase letters, numbers, and hyphens up to 56 characters in length.
<ChatSpaceFieldName> ::=
accesssettings|
admininstalled|
createtime|
displayname|
externaluserallowed|
importmode|
lastactivetime|
membershipcount|
name|
permissionsettings|
singleuserbotdm|
spacedetails|
spacehistorystate|
spacethreadingstate|threaded|
spacetype|type|
spaceuri
<ChatSpaceFieldNameList> ::= "<ChatSpaceFieldName>(,<ChatSpaceFieldName>)*"
<ChatMemberFieldName> ::=
createtime|
deletetime|
groupmember|
member|
name|
role|
state|
<ChatMemberFieldNameList> ::= "<ChatMemberFieldName>(,<ChatMemberFieldName>)*"
<ChatMessageFieldName> ::=
accessorywidgets|
actionresponse|
annotations|
argumenttext|
attachedgifs|
attachment|
cards|
cardsv2|
clientassignedmessageid|
createtime|
deletetime|
deletionmetadata|
emojireactionsummaries|
fallbacktext|
formattedtext|
lastupdatetime|
matchedurl|
name|
privatemessageviewer|
quotedmessagemetadata|
sender|
slashcommand|
space|
text|
thread|
threadreply
<ChatMessageFieldNameList> ::= "<ChatMessageFieldName>(,<ChatMessageFieldName>)*"
Keyword | Description | Allowed | Default |
---|---|---|---|
manageapps | Manage apps | managers-immutable | managers |
managemembersandgroups | Manage members and groups | managers/members | managers |
managewebhooks | Manage web hooks | managers-immutable | managers |
modifyspacedetails | Modify space details | managers/members | managers |
postmessages | Post messages | managers-immutable | managers |
replymessages | Reply messages | members/managers | members |
togglehistory | Turn history on and off | managers/members | managers |
useatmentionall | Use @all | managers-immutable | managers |
Keyword | Description | Allowed | Default |
---|---|---|---|
manageapps | Manage apps | members-immutable | members |
managemembersandgroups | Manage members and groups | managers/members | members |
managewebhooks | Manage web hooks | managers/members | members |
modifyspacedetails | Modify space details | managers/members | members |
postmessages | Post messages | members-immutable | members |
replymessages | Reply messages | members-immutable | members |
togglehistory | Turn history on and off | managers/members | members |
useatmentionall | Use @all | managers/members | members |
gam <UserTypeEntity> create chatspace
[type <ChatSpaceType>] [announcement|collaboration]
[restricted|(audience <String>)]
[externalusersallowed <Boolean>]
[members <UserTypeEntity>]
[displayname <String>]
[description <String>] [guidelines <String>]
[history <Boolean>]
[<ChatContent>]
[formatjson|returnidonly]
For type space
, the following apply:
-
members <UserTypeEntity>
- Optional, can not specify more that 20 users -
displayname <String>
- Required -
description <String>
- Optional -
guidelines <String>
- Optional -
history <Boolean>
- Optional -
announcement|collaboration
- Initial permission settings; default iscollaboration
; this is in Developer Preview
For type groupchat
, the following apply:
-
members <UserTypeEntity>
- Required, must specify between 2 and 20 users -
displayname <String>
- Ignored -
description <String>
- Optional -
guidelines <String>
- Optional -
history <Boolean>
- Optional
For type directmessage
, the following apply:
-
members <UserTypeEntity>
- Required, must specify 1 user -
displayname <String>
- Ignored -
description <String>
- Ignored -
guidelines <String>
- Ignored -
history <Boolean>
- Optional
By default, Gam displays the information about the created chatspace as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format. -
returnidonly
- Display the chatspace name only
Use the <ChatContent>
option to send an initial message to the created chatspace.
By default, details about the chatmessage are displayed.
-
returnidonly
- Display the chatmessage name only
gam <UserTypeEntity> update chatspace <ChatSpace>
[restricted|(audience <String>)]|
([displayname <String>]
[type space]
[description <String>] [guidelines|rules <String>]
[history <Boolean>])
[managemembersandgroups managers|members]
[modifyspacedetails managers|members]
[togglehistory managers|members]
[useatmentionall managers|members]
[manageapps managers|members]
[managewebhooks managers|members]
[replymessages managers|members]
[formatjson]
A groupchat space can be upgraded to a space by specifying type space
and displayname <String>
.
The restricted|audience
options can not be combined with options displayname,type,description,guidelines,history
.
You can manage permissions for chat spaces with the following options that are available with Developer Preview. [managemembersandgroups managers|members] [modifyspacedetails managers|members] [togglehistory managers|members] [useatmentionall managers|members] [manageapps managers|members] [managewebhooks managers|members] [postmessages managers|members] [replymessages managers|members]
By default, Gam displays the information about the created chatspace as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam <UserItem> update chatspace asadmin <ChatSpace>
[restricted|(audience <String>)]|
([displayname <String>]
[type space]
[description <String>] [guidelines|rules <String>]
[history <Boolean>])
[formatjson]
A groupchat space can be upgraded to a space by specifying type space
and displayname <String>
.
The restricted|audience
options can not be combined with options displayname,type,description,guidelines,history
.
By default, Gam displays the information about the created chatspace as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam <UserTypeEntity> delete chatspace <ChatSpace>
gam <UserItem> delete chatspace asadmin <ChatSpace>
gam <UserTypeEntity> info chatspace <ChatSpace>
[fields <ChatSpaceFieldNameList>]
[formatjson]
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam <UserTypeEntity> info chatspacedm <UserItem>
[fields <ChatSpaceFieldNameList>]
[formatjson]
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam <UserTypeEntity> show chatspaces
[types <ChatSpaceTypeList>]
[fields <ChatSpaceFieldNameList>]
[formatjson]
By default, chat spaces of all types are displayed.
-
types <ChatSpaceTypeList>
- Display specific types of spaces.
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam <UserTypeEntity> print chatspaces [todrive <ToDriveAttribute>*]
[types <ChatSpaceTypeList>]
[fields <ChatSpaceFieldNameList>]
[formatjson [quotechar <Character>]]
By default, chat spaces of all types are displayed.
-
types <ChatSpaceTypeList>
- Display specific types of spaces.
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
-
formatjson
- Display the fields in JSON format.
By default, when writing CSV files, Gam uses a quote character of double quote "
. The quote character is used to enclose columns that contain
the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
When using the formatjson
option, double quotes are used extensively in the data resulting in hard to read/process output.
The quotechar <Character>
option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
quotechar
defaults to gam.cfg/csv_output_quote_char
. When uploading CSV files to Google, double quote "
should be used.
# Local file
gam config auto_batch_min 1 redirect csv ./AllChatSpaces.csv multiprocess redirect stdout - multiprocess redirect stderr stdout all users print chatspaces
# Google sheet
gam config auto_batch_min 1 redirect csv - todrive <ToDriveAttribute>* multiprocess redirect stdout - multiprocess redirect stderr stdout all users print chatspaces
Add these options as desired:
[types <ChatSpaceTypeList>]
[formatjson [quotechar <Character>]]
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
-
formatjson
- Display the fields in JSON format.
By default, when writing CSV files, Gam uses a quote character of double quote "
. The quote character is used to enclose columns that contain
the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
When using the formatjson
option, double quotes are used extensively in the data resulting in hard to read/process output.
The quotechar <Character>
option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
quotechar
defaults to gam.cfg/csv_output_quote_char
. When uploading CSV files to Google, double quote "
should be used.
gam <UserItem> info chatspace asadmin <ChatSpace>
[fields <ChatSpaceFieldNameList>]
[formatjson]
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
For query and orderby information, see: https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
Only spaces of <ChatSpaceType>
space
are displayed; spaces of <ChatSpaceType>
groupchat
and directmessage
are not displayed.
gam <UserItem> show chatspaces asadmin
[query <String>] [querytime<String> <Time>]
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
[fields <ChatSpaceFieldNameList>]
[formatjson]
By default, all chat spaces of type SPACE are displayed.
-
query <String> [querytime<String> <Time>]
- Display selected chat spaces
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam <UserItem> print chatspaces asadmin [todrive <ToDriveAttribute>*]
[query <String>] [querytime<String> <Time>]
[orderby <ChatSpaceAdminOrderByFieldName> [ascending|descending]]
[fields <ChatSpaceFieldNameList>]
[formatjson [quotechar <Character>]]
By default, all chat spaces of type SPACE are displayed.
-
query <String> [querytime<String> <Time>]
- Display selected chat spaces
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
-
formatjson
- Display the fields in JSON format.
By default, when writing CSV files, Gam uses a quote character of double quote "
. The quote character is used to enclose columns that contain
the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
When using the formatjson
option, double quotes are used extensively in the data resulting in hard to read/process output.
The quotechar <Character>
option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
quotechar
defaults to gam.cfg/csv_output_quote_char
. When uploading CSV files to Google, double quote "
should be used.
gam <UserTypeEntity> create chatmember <ChatSpace>
[type human|bot] [role member|manager]
(user <UserItem>)* (members <UserTypeEntity>)*
(group <GroupItem>)* (groups <GroupEntity>)*
[formatjson|returnidonly]
By default, Gam displays the information about the chatmember as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format. -
returnidonly
- Display the chatmember name only
Delete members by specifying a chat space and user/group email addresses.
gam <UserTypeEntity> delete chatmember <ChatSpace>
((user <UserItem>)|(members <UserTypeEntity>)|
(group <GroupItem>)|(groups <GroupEntity>))+
Delete members from a user's chat space by specifying chatmember names.
gam <UserTypeEntity> remove chatmember members <ChatMemberList>
Creating memberships for users outside the administrator's Google Workspace organization isn't supported using asadmin.
gam <UserItem> create chatmember asadmin <ChatSpace>
[type human|bot] [role member|manager]
(user <UserItem>)* (members <UserTypeEntity>)*
(group <GroupItem>)* (groups <GroupEntity>)*
[formatjson|returnidonly]
By default, Gam displays the information about the chatmember as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format. -
returnidonly
- Display the chatmember name only
Delete members by specifying a chat space and user/group email addresses.
gam <UserItem> delete chatmember asadmin <ChatSpace>
((user <UserItem>)|(members <UserTypeEntity>)|
(group <GroupItem>)|(groups <GroupEntity>))+
Delete members from a chat space by specifying chatmember names, asadmin
gam <UserItem> remove chatmember members asadmin <ChatMemberList>
Update members by specifying a chat space, user/group email addresses and role.
gam <UserTypeEntity> update chatmember <ChatSpace>
role member|manager
((user <UserItem>)|(members <UserTypeEntity>))+
Update members by specifying chatmember names and role.
gam <UserTypeEntity> modify chatmember
role member|manager
members <ChatMemberList>
Update members by specifying a chat space, user/group email addresses and role.
gam <UserItem> update chatmember asadmin <ChatSpace>
role member|manager
((user <UserItem>)|(members <UserTypeEntity>))+
Update members by specifying chatmember names and role.
gam <UserItem> modify chatmember asadmin
role member|manager
members <ChatMemberList>
gam <UserTypeEntity> info chatmember members <ChatMemberList>
[fields <ChatMemberFieldNameList>]
[formatjson]
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam <UserTypeEntity> show chatmembers
<ChatSpace>* [types <ChatSpaceTypeList>]
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
[fields <ChatMemberFieldNameList>]
[formatjson]
By default, members for all of a user's chat spaces of all types are displayed.
-
<ChatSpace>
- Display members for a specific chat space -
types <ChatSpaceTypeList>
- Display members for specific types of spaces.
By default, all JOINED user members in a chat space are displayed.
-
showinvited
- DisplayINVITED
members. -
showgroups
- Display group members, -
filter <String>
- Filter memberships by a member'srole
andmember.type
.- To filter by role, set role to ROLE_MEMBER or ROLE_MANAGER.
- To filter by type, set member.type to HUMAN or BOT.
- To filter by both role and type, use the AND operator.
- To filter by either role or type, use the OR operator.
For example, the following filters are valid:
role = "ROLE_MANAGER" OR role = "ROLE_MEMBER"
member.type = "HUMAN" AND role = "ROLE_MANAGER"
The following filters are invalid:
member.type = "HUMAN" AND member.type = "BOT"
role = "ROLE_MANAGER" AND role = "ROLE_MEMBER"
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam <UserTypeEntity> print chatmembers [todrive <ToDriveAttribute>*]
<ChatSpace>* [types <ChatSpaceTypeList>]
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
[fields <ChatMemberFieldNameList>]
[formatjson [quotechar <Character>]]
By default, members for all of a user's chat spaces of all types are displayed.
-
<ChatSpace>
- Display members for a specific chat space -
types <ChatSpaceTypeList>
- Display members for specific types of spaces.
By default, all JOINED user members in a chat space are displayed.
-
showinvited
- DisplayINVITED
members. -
showgroups
- Display group members, -
filter <String>
- Filter memberships by a member'srole
andmember.type
.- To filter by role, set role to ROLE_MEMBER or ROLE_MANAGER.
- To filter by type, set member.type to HUMAN or BOT.
- To filter by both role and type, use the AND operator.
- To filter by either role or type, use the OR operator.
For example, the following filters are valid:
role = "ROLE_MANAGER" OR role = "ROLE_MEMBER"
member.type = "HUMAN" AND role = "ROLE_MANAGER"
The following filters are invalid:
member.type = "HUMAN" AND member.type = "BOT"
role = "ROLE_MANAGER" AND role = "ROLE_MEMBER"
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
-
formatjson
- Display the fields in JSON format.
By default, when writing CSV files, Gam uses a quote character of double quote "
. The quote character is used to enclose columns that contain
the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
When using the formatjson
option, double quotes are used extensively in the data resulting in hard to read/process output.
The quotechar <Character>
option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
quotechar
defaults to gam.cfg/csv_output_quote_char
. When uploading CSV files to Google, double quote "
should be used.
gam <UserItem> info chatmember asadmin members <ChatMemberList>
[fields <ChatMemberFieldNameList>]
[formatjson]
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
For query and orderby information, see: https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces/search
gam <UserItem> show chatmembers asadmin
<ChatSpace>* [query <String>] [querytime<String> <Time>]
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
[fields <ChatMemberFieldNameList>]
[formatjson]
By default, members for all chat spaces of type SPACE are displayed.
-
<ChatSpace>
- Display members for a specific chat space -
query <String> [querytime<String> <Time>]
- Display members for selected chat spaces
By default, all JOINED user members in a chat space are displayed.
-
showinvited
- DisplayINVITED
members. -
showgroups
- Display group members, -
filter <String>
- Filter memberships by a member'srole
andmember.type
.- To filter by role, set role to ROLE_MEMBER or ROLE_MANAGER.
- To filter by type, set member.type to HUMAN or BOT.
- To filter by both role and type, use the AND operator.
- To filter by either role or type, use the OR operator.
For example, the following filters are valid:
role = "ROLE_MANAGER" OR role = "ROLE_MEMBER"
member.type = "HUMAN" AND role = "ROLE_MANAGER"
The following filters are invalid:
member.type = "HUMAN" AND member.type = "BOT"
role = "ROLE_MANAGER" AND role = "ROLE_MEMBER"
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam <UserItem> print chatmembers asadmin [todrive <ToDriveAttribute>*]
<ChatSpace>* [query <String>] [querytime<String> <Time>]
[showinvited [<Boolean>]] [showgroups [<Boolean>]] [filter <String>]
[fields <ChatMemberFieldNameList>]
[formatjson [quotechar <Character>]]
By default, members for all chat spaces of type SPACE are displayed.
-
<ChatSpace>
- Display members for a specific chat space -
query <String> [querytime<String> <Time>]
- Display members for selected chat spaces
By default, all JOINED user members in a chat space are displayed.
-
showinvited
- DisplayINVITED
members. -
showgroups
- Display group members, -
filter <String>
- Filter memberships by a member'srole
andmember.type
.- To filter by role, set role to ROLE_MEMBER or ROLE_MANAGER.
- To filter by type, set member.type to HUMAN or BOT.
- To filter by both role and type, use the AND operator.
- To filter by either role or type, use the OR operator.
For example, the following filters are valid:
role = "ROLE_MANAGER" OR role = "ROLE_MEMBER"
member.type = "HUMAN" AND role = "ROLE_MANAGER"
The following filters are invalid:
member.type = "HUMAN" AND member.type = "BOT"
role = "ROLE_MANAGER" AND role = "ROLE_MEMBER"
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
-
formatjson
- Display the fields in JSON format.
By default, when writing CSV files, Gam uses a quote character of double quote "
. The quote character is used to enclose columns that contain
the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
When using the formatjson
option, double quotes are used extensively in the data resulting in hard to read/process output.
The quotechar <Character>
option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
quotechar
defaults to gam.cfg/csv_output_quote_char
. When uploading CSV files to Google, double quote "
should be used.
There is no way to delete a user from a directmessage space.
Replace user@domain.com and admin@domain.com with actual values.
gam redirect csv ./UserChatSpaces.csv user user@domain.com print chatspaces types space,groupchat
gam redirect stdout ./DeleteUserChatMemberships.txt multiprocess redirect stderr stdout csv ./UserChatSpaces.csv gam user admin@domain.com delete chatmember asadmin "~name" user "~User"
Messages are limited to 4,096 characters and will be trimmed to that length.
Chat supports simple formatting allowing you to bold, underline, italics and strikethrough your text.
gam <UserTypeEntity> create chatmessage <ChatSpace>
<ChatContent>
[messageId <ChatMessageID>]
[(thread <ChatThread>)|(threadkey <String>) [replyoption fail|fallbacktonew]]
[returnidonly]
Specify the text of the message: <ChatContent>
-
text <String>
- The message is<String>
-
textfile <FileName> [charset <Charset>]
- The message is read from a local file -
gdoc <UserGoogleDoc>
- The message is read from a Google Doc. -
gcsdoc <StorageBucketObjectName>
- The message is read from a Google Cloud Storage file.
By default, a new message thread is created; use thread <ChatThread>
or threadkey <String>
to create the message as a reply to an existing thread.
Use replyoption
to specify what happens if the specified thread does not exist:
-
fail
- If the thread soes not exiat, aNot Found
error is generated -
fallbacktonew
- If the thread does not exist, start a new thread
The first time you reply to a thread you must use thread <ChatThread>
; if you also specify threadkey <String>
then you can use just threadkey <String>
in subsequent replies.
If you specify thread
or threadkey
but not replyoption
, the default is fail
.
By default, details about the chatmessage are displayed.
-
returnidonly
- Display the chatmessage name only
This example creates a new chat message in the given room.
gam user user@domain.com create chatmessage space spaces/iEMj8AAAAAE text "Hello Chat"
This example creates a formatted message and posts it to an existing thread
gam user user@domain.com create chatmessage space spaces/AAAADi-pvqc thread spaces/AAAADi-pvqc/threads/FMNw-iE9jN4 text "*Bold* _Italics_ ~Strikethrough~"
This example reads the MotD.txt file and posts its contents to Chat.
gam user user@domain.com create chatmessage spaces spaces/AAAADi-pvqc textfile MotD.txt
This example reads the Google Doc MotD and posts its contents to Chat.
gam user user@domain.com create chatmessage spaces spaces/AAAADi-pvqc gdoc announcements@domain.com name "MotD"
Updates and rewrites an existing Chat message. Message will show as edited and no notification will be sent to members.
gam <UserTypeEntity> update chatmessage name <ChatMessage>
<ChatContent>
Specify the text of the message: <ChatContent>
-
text <String>
- The message is<String>
-
textfile <FileName> [charset <Charset>]
- The message is read from a local file -
gdoc <UserGoogleDoc>
- The message is read from a Google Doc. -
gcsdoc <StorageBucketObjectName>
- The message is read from a Google Cloud Storage file.
This example updates an existing chat message with new text.
gam user user@domain.com update chatmessage name spaces/AAAADi-pvqc/messages/PKJrx90ooIU.PKJrx90ooIU text "HELLO CHAT?"
Deletes the given Chat message. Members will no longer see the message.
gam <UserTypeEntity> delete chatmessage name <ChatMessage>
gam user user@domain.com delete chatmessage name spaces/AAAADi-pvqc/messages/PKJrx90ooIU.PKJrx90ooIU
Display a specific Chat message.
gam <UserTypeEntity> info chatmessage name <ChatMessage>
[fields <ChatMessageFieldNameList>]
[formatjson]
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam user user@domain.com info chatmessage name spaces/AAAADi-pvqc/messages/PKJrx90ooIU.PKJrx90ooIU
gam <UserTypeEntity> show chatmessages
<ChatSpace>+
[showdeleted [<Boolean>]] [filter <String>]
[fields <ChatMessageFieldNameList>]
[formatjson]
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam <UserTypeEntity> print chatmessages [todrive <ToDriveAttribute>*]
<ChatSpace>+
[showdeleted [<Boolean>]] [filter <String>]
[fields <ChatMessageFieldNameList>]
[formatjson [quotechar <Character>]]
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
-
formatjson
- Display the fields in JSON format.
By default, when writing CSV files, Gam uses a quote character of double quote "
. The quote character is used to enclose columns that contain
the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
When using the formatjson
option, double quotes are used extensively in the data resulting in hard to read/process output.
The quotechar <Character>
option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
quotechar
defaults to gam.cfg/csv_output_quote_char
. When uploading CSV files to Google, double quote "
should be used.
By default, deleted messages are not displayed; use showdeleted
to also display deleted messages.
Use filter <String>
to filter messages by createTime
and thread.name
.
To filter messages by the date they were created, specify the createTime with a timestamp in RFC-3339 format and double quotation marks. For example, "2023-04-21T11:30:00-04:00".
- Use the greater than operator
>
to list messages that were created after a timestamp. - Use the less than operator
<
to list messages that were created before a timestamp. - To filter messages within a time interval, use the AND operator between two timestamps.
- To filter by thread, specify the thread.name, formatted as spaces/{space}/threads/{thread}. You can only specify one thread.name per query.
- To filter by both thread and date, use the AND operator in your query.
For example, the following queries are valid on Linux/MacOS:
filter 'createTime > "2012-04-21T11:30:00-04:00"'
filter 'createTime > "2012-04-21T11:30:00-04:00" AND thread.name = spaces/AAAAAAAAAAA/threads/123'
filter 'createTime > "2012-04-21T11:30:00+00:00" AND createTime < "2013-01-01T00:00:00+00:00" AND thread.name = spaces/AAAAAAAAAAA/threads/123'
filter 'thread.name = spaces/AAAAAAAAAAA/threads/123'
For example, the following queries are valid on Windows Command Prompt:
filter "createTime > \"2012-04-21T11:30:00-04:00\""
filter "createTime > \"2012-04-21T11:30:00-04:00\" AND thread.name = spaces/AAAAAAAAAAA/threads/123"
filter "createTime > \"2012-04-21T11:30:00+00:00\" AND createTime < \"2013-01-01T00:00:00+00:00\" AND thread.name = spaces/AAAAAAAAAAA/threads/123"
filter "thread.name = spaces/AAAAAAAAAAA/threads/123"
For example, the following queries are valid on Windows PowerShell:
filter 'createTime > \"2012-04-21T11:30:00-04:00\"'
filter 'createTime > \"2012-04-21T11:30:00-04:00\" AND thread.name = spaces/AAAAAAAAAAA/threads/123"'
filter 'createTime > \"2012-04-21T11:30:00+00:00\" AND createTime < \"2013-01-01T00:00:00+00:00\" AND thread.name = spaces/AAAAAAAAAAA/threads/123'
filter 'thread.name = spaces/AAAAAAAAAAA/threads/123'
Display a specific Chat event.
gam <UserTypeEntity> info chatevent name <ChatEvent>
[formatjson]
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam user user@domain.com info chatevent name spaces/AAAAsUhqjkg/spaceEvents/MTcxMTY4ODM2NDE3OTQzOV81X3VwZGF0ZWQ
gam <UserTypeEntity> show chatevents
<ChatSpace>+
filter <String>
[formatjson]
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam <UserTypeEntity> print chatevents [todrive <ToDriveAttribute>*]
<ChatSpace>+
filter <String>
[formatjson [quotechar <Character>]]
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
-
formatjson
- Display the fields in JSON format.
By default, when writing CSV files, Gam uses a quote character of double quote "
. The quote character is used to enclose columns that contain
the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
When using the formatjson
option, double quotes are used extensively in the data resulting in hard to read/process output.
The quotechar <Character>
option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
quotechar
defaults to gam.cfg/csv_output_quote_char
. When uploading CSV files to Google, double quote "
should be used.
Use filter <String>
to filter events by when they occurred and by the type of event.
To filter events by the date they happened, specify the start_time and end_time with a timestamp in RFC-3339 format and double quotation marks.
You must specify at least one event type (event_types) using the has : operator. To filter by multiple event types, use the OR operator. For a list of supported event types, see: https://developers.google.com/workspace/chat/api/reference/rest/v1/spaces.spaceEvents#SpaceEvent.FIELDS.event_type
For example, the following queries are valid on Linux/MacOS:
filter 'start_time="2024-03-15T11:30:00-04:00" AND event_types:"google.workspace.chat.message.v1.created"'
filter 'start_time="2024-03-15T11:30:00+00:00" AND end_time="2024-03-3100:00:00+00:00"event_types:"google.workspace.chat.message.v1.created"'
For example, the following queries are valid on Windows Command Prompt:
filter "start_time=\"2024-03-15T11:30:00-04:00\" AND event_types:\"google.workspace.chat.message.v1.created\""
filter "start_time=\"2024-03-15T11:30:00+00:00\" AND end_time=\"2024-03-3100:00:00+00:00\" AND event_types:\"google.workspace.chat.message.v1.created\""
For example, the following queries are valid on Windows PowerShell:
filter 'start_time=\"2024-03-15T11:30:00-04:00\" AND event_types:\"google.workspace.chat.message.v1.created\"'
filter 'start_time=\"2024-03-15T11:30:00+00:00\" AND end_time=\"2024-03-3100:00:00+00:00\" AND event_types:\"google.workspace.chat.message.v1.created\"'
gam <UserTypeEntity> create chatemoji <ChatEmojiName>
([drivedir|(sourcefolder <FilePath>)] [filename <FileNamePattern>])
[formatjson]
Emoji names must start and end with colons, must be lowercase and can only contain alphanumeric characters, hyphens, and underscores. Hyphens and underscores should be used to separate words and cannot be used consecutively.
By default, the emoji file will be uploaded from the current working directory.
-
drivedir
- The emoji file will be uploaded from the directory specified bydrive_dir
in gam.cfg -
sourcefolder <FilePath>
- The emoji file will be uploaded from<FilePath>
Specify the emoji file name; the following substitutions will be made:
-
#email#
and#user#
will be replaced by the user's full email address -
#username#
will be replaced by the local part of the user's email address
Deletes the given Chat emoji.
gam <UserTypeEntity> delete chatemoji <Chatemoji>
gam <UserTypeEntity> info chatemoji <Chatemoji>
[formatjson]
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam <UserTypeEntity> show chatemojis
[showcreatedby any|me|others]
[formatjson]
Select emojis to display:
-
showcreatedby any
- Display all emojis regardless of creator -
showcreatedby
- Display all emojis created by the user; this is the default -
showcreatedby others
- Display all emojis not created by the user
By default, Gam displays the information as an indented list of keys and values.
-
formatjson
- Display the fields in JSON format.
gam <UserTypeEntity> print chatemojis [todrive <ToDriveAttribute>*]
[showcreatedby any|me|others]
[formatjson [quotechar <Character>]]
Select emojis to display:
-
showcreatedby any
- Display all emojis regardless of creator -
showcreatedby
- Display all emojis created by the user; this is the default -
showcreatedby others
- Display all emojis not created by the user
By default, Gam displays the information as columns of fields; the following option causes the output to be in JSON format,
-
formatjson
- Display the fields in JSON format.
By default, when writing CSV files, Gam uses a quote character of double quote "
. The quote character is used to enclose columns that contain
the quote character itself, the column delimiter (comma by default) and new-line characters. Any quote characters within the column are doubled.
When using the formatjson
option, double quotes are used extensively in the data resulting in hard to read/process output.
The quotechar <Character>
option allows you to choose an alternate quote character, single quote for instance, that makes for readable/processable output.
quotechar
defaults to gam.cfg/csv_output_quote_char
. When uploading CSV files to Google, double quote "
should be used.
gam config auto_batch_min 1 redirect csv ./ChatSpaces.csv multiprocess [todrive <ToDriveAttribute>*] redirect stdout - multiprocess redirect stderr <UserTypeEntity> print chatspaces
[types <ChatSpaceTypeList>]
[formatjson [quotechar <Character>]]
gam config auto_batch_min 1 redirect csv ./ChatSpaces.csv multiprocess [to
8000
drive <ToDriveAttribute>*] redirect stdout - multiprocess redirect stderr <UserTypeEntity> print chatspaces
[types <ChatSpaceTypeList>]
gam redirect csv ./ChatSpaceMembers.csv multiprocess [todrive <ToDriveAttribute>*] redirect stdout - multiprocess redirect stderr stdout csv ./ChatSpaces.csv gam user "~User" print chatmembers "~name"
[showinvited [<Boolean>]] [filter <String>]
Need more help? Ask on the GAM Discussion Group or Chat Space.
You can suggest edits to these Wiki pages by submitting pull requests against the wiki files.
oUpdate History
Installation
- How to Install GAM7
- How to Upgrade GAMADV-XTD3 to GAM7
- How to Upgrade Legacy GAM to GAM7
- How to Update GAM7
- Verifying a GAM7 Build is Legitimate and Official
- Install GAM as Python Library
- GAM7 on Chrome OS Devices
- GAM7 on Android Devices
- Google Network Addresses
- HTTPS Proxy
- SSL Root CA Certificates
- How to Uninstall GAM7
Configuration
- Authorization
- GAM Configuration
- Running GAM7 securely on a Google Compute Engine
- Using GAM7 with a delegated admin service account
- Using GAM7 with a YubiKey
- GAM with minimal GCP rights
Notes and Information
- Upgrade Benefits
- Questions? Visit the GAM Discussion Forum
- GAM Public Chat Room
- Scripts
- Other Resources
- Drive REST API v3
- BNF Syntax
- GAM Return Codes
- Python Regular Expressions
- Rclone
Definitions
Command Processing
- Bulk Processing
- Command Line Parsing
- Command Logging and Progress
- Command data from Google Docs/Sheets/Storage
- CSV Special Characters
- CSV Input Filtering
- CSV Output Filtering
- Meta Commands and File Redirection
- Permission matches
- Tag Replace
- Todrive
Collections
Client Access
- Addresses
- Administrators
- Alert Center
- Aliases
- Calendars
- Calendars - Access
- Calendars - Events
- Chrome Auto Update Expiration Counts
- Chrome Browser Cloud Management
- Chrome Device Needs Attention Counts
- Chrome Installed Apps
- Chrome Policies
- Chrome Printers
- Chrome Profile Management
- Chrome Version Counts
- Chrome Version History
- ChromeOS Devices
- Classroom - Courses
- Classroom - Guardians
- Classroom - Invitations
- Classroom - Membership
- Cloud Channel
- Cloud Identity Devices
- Cloud Identity Groups
- Cloud Identity Groups - Membership
- Cloud Identity Policies
- Cloud Storage
- Context Aware Access Levels
- Customer
- Domains
- Domains - Verification
- Domain People - Contacts & Profiles
- Domain Shared Contacts
- Email Audit Monitor
- Find File Owner
- Google Data Transfers
- Groups
- Groups - Membership
- Inbound SSO
- Licenses
- Mobile Devices
- Organizational Units
- Reports
- Reseller
- Resources
- Send Email
- Schemas
- Shared Drives
- Sites
- Unmanaged Accounts
- Users
- Users - Application Specific Passwords
- Users - Backup Verification Codes
- Users - Classroom - Profile
- Users - Contacts - Delegates
- Users - Deprovision
- Users - Group Membership
- Users - Photo
- Users - Profile Sharing
- Users - Signout and Turn off 2-Step Verification
- Users - Tokens
- Vault - Takeout
- Version and Help
Special Service Account Access
Service Account Access
- Users - Analytics Admin
- Users - Calendars
- Users - Calendars - Access
- Users - Calendars - Events
- Users - Chat
- Users - Classification Labels
- Users - Contacts
- Users - Drive - File Selection
- Users - Drive - Activity/Settings
- Users - Drive - Cleanup
- Users - Drive - Comments
- Users - Drive - Copy/Move
- Users - Drive - Files-Display
- Users - Drive - Files-Manage
- Users - Drive - Orphans
- Users - Drive - Ownership
- Users - Drive - Permissions
- Users - Drive - Query
- Users - Drive - Revisions
- Users - Drive - Shortcuts
- Users - Drive - Transfer
- Users - Forms
- Users - Gmail - Client Side Encryption
- Users - Gmail - Delegates
- Users - Gmail - Filters
- Users - Gmail - Forwarding
- Users - Gmail - Labels
- Users - Gmail - Messages/Threads
- Users - Gmail - Profile
- Users - Gmail - S/MIME
- Users - Gmail - SendAs/Signature/Vacation
- Users - Gmail - Settings
- Users - Keep - Notes
- Users - Looker Studio
- Users - Meet
- Users - Classroom - Profile
- Users - People - Contacts & Profiles
- Users - Profile Photo
- Users - Shared Drives
- Users - Spreadsheets
- Users - Tasks
- Users - YouTube
GAM Tutorials
- Account Auditing
- Calendar Settings
- Chat Bot commands
- Chrome Browser Management
- Chrome Policy Settings
- Context Aware Access levels
- Data Transfers
- Domain Verification
- Google Drive Management
- Group Settings
- Inbound SSO Settings
- Managing Admins
- Managing Classroom
- Managing Custom User Schemas
- Managing Devices
- Managing Organizations
- Managing Product Licenses
- Managing Users, Groups, Aliases, Domains, Mobile and Chrome Devices, and Resource Calendars
- OAuth Authentication Related Commands
- Print Users, Groups, Aliases, Mobile and Chrome OS devices, OUs, Licenses and Reports
- Printers
- Unmanaged Users and Invitations
- User Email Settings
- User Security Settings