AI-generated Key Takeaways
-
This guide focuses on utilizing the
findDirectMessage()
method within the Google Chat API to retrieve information about direct messages (DMs). -
Authentication can be performed using either app authentication (for Chat app access to DMs) or user authentication (for authenticated user access to DMs).
-
To find a DM, you need to call the
FindDirectMessage()
method, providing the user's name, and utilize the appropriate authorization scope based on the authentication method. -
The response from the Chat API will contain a
Space
object providing detailed information about the specified DM.
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.
When a Google Workspace administrator installs a Chat app for their entire Google Workspace organization, Google Chat creates a DM between the installed Chat app and each user in the organization.
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
credentials.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.