This guide explains how to use the
findDirectMessage()
method on the Space
resource of the Google Chat API to get details about a
direct message (DM) space.
The
Space
resource
represents a place where people and Chat apps can send messages,
share files, and collaborate. There are several types of spaces:
- Direct messages (DMs) are conversations between two users or a user and a Chat app.
- Group chats are conversations between three or more users and Chat apps.
- Named spaces are persistent places where people send messages, share files, and collaborate.
Authenticating with app authentication lets a Chat app get DMs that the Chat app has access to in Google Chat (for example, DMs it's a member of). Authenticating with user authentication returns DMs that the authenticated user has access to.
Prerequisites
Node.js
- A Business or Enterprise Google Workspace account with access to Google Chat.
- Set up your environment:
- Create a Google Cloud project.
- Configure the OAuth consent screen.
- Enable and configure the Google Chat API with a name, icon, and description for your Chat app.
- Install the Node.js Cloud Client Library.
- Create access credentials based on how you want to authenticate in your Google Chat API
request:
- To authenticate as a Chat user,
create OAuth client ID
credentials and save the credentials as a JSON file named
client_secrets.json
to your local directory. - To authenticate as the Chat app,
create service account
credentials and save the credentials as a JSON file named
credentials.json
.
- To authenticate as a Chat user,
create OAuth client ID
credentials and save the credentials as a JSON file named
- Choose an authorization scope based on whether you want to authenticate as a user or the Chat app.
Find a direct message
To find a direct message in Google Chat, pass the following in your request:
- With app authentication,
specify the
chat.bot
authorization scope. With user authentication, specify thechat.spaces.readonly
orchat.spaces
authorization scope. - Call the
FindDirectMessage()
, method passing thename
of the other user in the DM to return. With user authentication, this method returns a DM between the calling user and the specified user. With app authentication, this method returns a DM between the calling app and the specified user. - To add a human user as a space member, specify
users/{user}
, where{user}
is either the{person_id}
for theperson
from the People API, or the ID of auser
in the Directory API. For example, if the People API personresourceName
ispeople/123456789
, you can add the user to the space by including a membership withusers/123456789
as themember.name
.
Find a direct message with user authentication
Here's how to find a direct message with user authentication:
Node.js
To run this sample, replace USER_NAME
with the ID from the
user's
name
field.
The Chat API returns an instance of
Space
that details the specified DM.
Find a direct message with app authentication
Here's how to find a direct message with app authentication:
Node.js
To run this sample, replace USER_NAME
with the ID from the
user's
name
field.
The Chat API returns an instance of
Space
that details the specified DM.
Related topics
- Create a space.
- Set up a space.
- Get details about a space.
- List spaces.
- Update a space.
- Delete a space.