Find a direct message (DM) space (original) (raw)
This guide explains how to use thefindDirectMessage()method on the Space resource of the Google Chat API to get details about a direct message (DM) space.
TheSpace resourcerepresents 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 administratorinstalls 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 withapp authenticationlets a Chat app get DMs that the Chat app has access to in Google Chat (for example, DMs it's a member of). Authenticating withuser authentication returns DMs that the authenticated user has access to.
Prerequisites
Node.js
- A Business or EnterpriseGoogle Workspace account with access toGoogle 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 namedcredentials.jsonto your local directory.
* To authenticate as the Chat app,create service account credentials and save the credentials as a JSON file namedcredentials.json.
- Choose an authorization scope based on whether you want to authenticate as a user or the Chat app.
To find a direct message in Google Chat, pass the following in your request:
- With app authentication, specify the
chat.botauthorization scope. Withuser authentication, specify thechat.spaces.readonlyorchat.spacesauthorization scope. - Call theFindDirectMessage(), method passing the
nameof the other user in the DM to return. Withuser authentication, this method returns a DM between the calling user and the specified user. Withapp 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 thepersonfrom the People API, or the ID of auserin the Directory API. For example, if the People API personresourceNameispeople/123456789, you can add the user to the space by including a membership withusers/123456789as themember.name.
Find a direct message with user authentication
Here's how to find a direct message withuser authentication:
Node.js
To run this sample, replace USER_NAME with the ID from the user'snamefield.
The Chat API returns an instance ofSpacethat details the specified DM.
Find a direct message with app authentication
Here's how to find a direct message withapp authentication:
Node.js
To run this sample, replace USER_NAME with the ID from the user'snamefield.
The Chat API returns an instance ofSpacethat details the specified DM.