En esta guía, se explica cómo usar OAuth 2.0 con las claves las credenciales de Google para acceder a la API de Chat Autenticación y autorización con credenciales de usuario permite que las apps de Chat accedan a los datos del usuario y realicen las operaciones en nombre del usuario autenticado. A través de la autenticación en su nombre, la app tiene los mismos permisos que ese usuario y puede realizar acciones como si la hubiera llevado a cabo ese usuario.
Después de la autenticación y autorización una llamada a la API con credenciales de usuario, las apps de Chat pueden lo siguiente:
- Crear espacios de Chat
- Agregar usuarios a espacios de Chat y conversaciones grupales
- Trabaja con datos del usuario en otras APIs de Workspace, como las siguientes:
- Cómo crear eventos en el Calendario de Google.
- Registrar elementos en Hojas de cálculo de Google.
- Enviar un correo electrónico con Gmail.
Cuando una app realiza una acción con autenticación de usuario (como crear un espacio), Google Chat mostrará un mensaje de atribución. que indica a los usuarios el nombre de la app que realizó la acción para el usuario que la autorizó.
![La app de Google Chat crea un espacio para un usuario.](https://developers-dot-devsite-v2-prod.appspot.com/static/workspace/chat/images/auth-user-create-space.png?authuser=6&hl=es)
Para saber cuándo las apps de Chat requieren autenticación y qué tipo de autenticación usar, consulta Tipos de autenticación obligatoria en la descripción general de la autenticación y la autorización de la API de Chat.
Autentica y autoriza con la delegación de todo el dominio
Si eres un administrador de dominio, puedes otorgar delegación de autoridad de todo el dominio para autorizar que una cuenta de servicio de una aplicación acceda a las contraseñas datos sin por lo que cada usuario deberá dar su consentimiento. Después de configurar la delegación de todo el dominio, el la cuenta de servicio puede usar la identidad de una cuenta de usuario. Aunque las cuentas de servicio se usan para autenticación, la delegación de todo el dominio se hace pasar por un usuario y, por lo tanto, se se considera autenticación de usuarios. Cualquier funcionalidad que requiera el uso autenticación, puedes usar la delegación de todo el dominio.
Autentica y autoriza con privilegios de administrador
Si eres administrador de dominio o administrador delegado con privilegios de administrador, puedes autenticar y autorizar tus llamadas a la API de Google Chat con privilegios de administrador estableciendo el campo use_admin_access
en las solicitudes de los métodos aplicables. Si deseas obtener más información, consulta la documentación de referencia de la API.
Ten en cuenta que, cuando una app de Google Chat realiza una acción con privilegios de administrador, Chat no les dirá a los usuarios el nombre de la app que realizó la acción ni el nombre del administrador que la autorizó, sino que solo les indicará que la realiza el administrador de su organización.
Requisitos previos
Java
- Una empresa o empresa de Google Workspace con acceso a Google Chat.
- Crea un proyecto de Google Cloud
- Habilita y configura la API de Google Chat con un nombre. y la descripción de tu app de Chat.
- JDK 1.7 o superior
- La herramienta de administración de paquetes Maven
-
Un proyecto de Maven inicializado. Para inicializar un proyecto nuevo, ejecuta el siguiente comando en tu
de línea de comandos:
mvn archetype:generate -DgroupId=com.google.chat.app.authsample -DartifactId=auth-sample-app -DarchetypeArtifactId=maven-archetype-quickstart -DarchetypeVersion=1.4 -DinteractiveMode=false
Python
- Una empresa o empresa de Google Workspace con acceso a Google Chat.
- Crea un proyecto de Google Cloud
- Habilita y configura la API de Google Chat con un nombre. y la descripción de tu app de Chat.
- Python 3.6 o superior
- La herramienta de administración de paquetes pip
Node.js
- Una empresa o empresa de Google Workspace con acceso a Google Chat.
- Crea un proyecto de Google Cloud
- Habilita y configura la API de Google Chat con un nombre. y la descripción de tu app de Chat.
- Node.js 14 o versiones posteriores
- La herramienta npm herramienta de administración de paquetes
-
Un proyecto de Node.js inicializado. Para inicializar un proyecto nuevo, crea
cambia a una nueva carpeta, luego ejecuta el siguiente comando en tu interfaz de línea de comandos:
npm init
Apps Script
- Una empresa o empresa de Google Workspace con acceso a Google Chat.
- Crea un proyecto de Google Cloud
- Habilita y configura la API de Google Chat con un nombre. y la descripción de tu app de Chat.
- Crear un proyecto independiente de Apps Script, y activa el Servicio de chat avanzado.
Paso 1: Configura la pantalla de consentimiento de OAuth, especifica los permisos y registra tu app
Cuando usas OAuth 2.0 para la autorización, Google muestra una pantalla de consentimiento para usuario, incluyendo un resumen de tu proyecto, sus políticas y los documentos permisos de autorización. Configura la pantalla de consentimiento de OAuth de tu app define lo que Google muestra a los usuarios y revisores de la app, y registra tu app para que puedas publicarlo más tarde.
Todas las apps que usan OAuth 2.0 requieren una configuración de pantalla de consentimiento, pero solo Debes enumerar los permisos de las apps que usan personas ajenas a Google Workspace para que se adapten a las necesidades de tu organización.
En la consola de Google Cloud, ve a Menú > APIs y Servicios > Pantalla de consentimiento de OAuth.
Selecciona el tipo de usuario para tu app y, luego, haz clic en Crear.
Completa el formulario de registro de apps y, luego, haz clic en Guardar y continuar.
Haz clic en Add or Remove Scopes. Agrega y verifica el los permisos de autorización que requiere tu app, haz clic en Actualizar y, luego, en Guardar y continuar.
Revisa el resumen del registro de tu app. Haz clic en Editar para realizar cambios. Haz clic en Volver al panel.
Paso 2: Crea credenciales de ID de cliente de OAuth en la consola de Google Cloud
Para autenticarte como usuario final y acceder a los datos del usuario en tu app, debes hacer lo siguiente: crear uno o varios ID de cliente de OAuth 2.0. Un ID de cliente se usa con el fin de identificar una sola app para los servidores de OAuth de Google. Si tu app se ejecuta en múltiples como Android, iOS y la Web, necesitas crear un ID de cliente para para cada plataforma.
Crea credenciales de ID de cliente de OAuth
Elige tu tipo de aplicación para obtener instrucciones específicas sobre cómo crear un ID de cliente de OAuth:
Aplicación web
- En la consola de Google Cloud, ve a Menú > APIs y Servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > Aplicación web.
- En el campo Nombre, escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- Agrega URI autorizados relacionados con tu aplicación:
- Apps del cliente (JavaScript): En Orígenes autorizados de JavaScript, haz clic en Agregar URI. Luego, ingresa un URI para usar en las solicitudes del navegador. Esto identifica los dominios desde los cuales tu aplicación puede enviar solicitudes de API al servidor OAuth 2.0.
- Apps del servidor (Java, Python y más): en Authorized redirect URIs, haz clic en Add URI. Luego, ingresa un URI de extremo al que el servidor de OAuth 2.0 pueda enviar respuestas.
- Haz clic en Crear. Aparecerá la pantalla de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente y secreto del cliente.
Anota el ID de cliente. Los secretos del cliente no se usan para las aplicaciones web.
- Haz clic en Aceptar. La credencial creada recientemente aparece en ID de cliente de OAuth 2.0.
Android
- En la consola de Google Cloud, ve a Menú > APIs y Servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > Android.
- En la sección “Nombre” escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- En el campo "Nombre del paquete" , ingresa el nombre del paquete de tu archivo
AndroidManifest.xml
. - En la “Huella digital del certificado SHA-1” ingresa tu huella digital del certificado SHA-1 generada.
- Haz clic en Crear. Aparecerá la pantalla de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente.
- Haz clic en Aceptar. La credencial creada recientemente aparecerá en "ID de cliente de OAuth 2.0".
iOS
- En la consola de Google Cloud, ve a Menú > APIs y Servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > iOS.
- En la sección “Nombre” escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- En "ID del paquete", ingresa el identificador de paquete como aparece en el archivo
Info.plist
de la app. - Opcional: Si tu aplicación aparece en la App Store de Apple, ingresa el ID de la tienda de aplicaciones.
- Opcional: En "ID de equipo" , ingresa la cadena única de 10 caracteres generada por Apple y asignada a tu equipo.
- Haz clic en Crear. Aparecerá la pantalla de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente y secreto del cliente.
- Haz clic en Aceptar. La credencial creada recientemente aparecerá en "ID de cliente de OAuth 2.0".
App de Chrome
- En la consola de Google Cloud, ve a Menú > APIs y Servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > Aplicación de Chrome.
- En la sección “Nombre” escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- En "ID de aplicación", , ingresa la cadena de ID única de 32 caracteres de tu app. Puedes encontrar este valor de ID en la URL de Chrome Web Store de tu app y en el Panel del desarrollador de Chrome Web Store.
- Haz clic en Crear. Aparecerá la pantalla de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente y secreto del cliente.
- Haz clic en Aceptar. La credencial creada recientemente aparecerá en "ID de cliente de OAuth 2.0".
App de escritorio
- En la consola de Google Cloud, ve a Menú > APIs y Servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > Aplicación para computadoras.
- En el campo Nombre, escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- Haz clic en Crear. Aparecerá la pantalla de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente y secreto del cliente.
- Haz clic en Aceptar. La credencial nueva aparece en ID de cliente de OAuth 2.0.
TVs y Dispositivos de entrada limitados
- En la consola de Google Cloud, ve a Menú > APIs y Servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > TVs y Dispositivos de entrada limitados
- En la sección “Nombre” escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- Haz clic en Crear. Aparecerá la pantalla de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente y secreto del cliente.
- Haz clic en Aceptar. La credencial creada recientemente aparecerá en "ID de cliente de OAuth 2.0".
Plataforma universal de Windows (UWP)
- En la consola de Google Cloud, ve a Menú > APIs y Servicios > Credenciales.
- Haz clic en Crear credenciales > ID de cliente de OAuth.
- Haz clic en Tipo de aplicación > Plataforma universal de Windows (UWP).
- En la sección “Nombre” escribe un nombre para la credencial. Este nombre solo se muestra en la consola de Google Cloud.
- En "ID de tienda", ingresa el valor único de 12 caracteres de ID de Microsoft Store de tu app. Puedes encontrar este ID en la URL de Microsoft Store de tu app y en el Centro de socios.
- Haz clic en Crear. Aparecerá la pantalla de creación del cliente de OAuth, en la que se mostrará tu nuevo ID de cliente y secreto del cliente.
- Haz clic en Aceptar. La credencial creada recientemente aparecerá en "ID de cliente de OAuth 2.0".
Descarga el archivo JSON del secreto del cliente
El archivo de secreto del cliente es una representación JSON del ID de cliente de OAuth credenciales a las que la app de Chat puede hacer referencia cuando proporcionando credenciales.
En la consola de Google Cloud, ve a Menú > APIs y Servicios > Credenciales.
En ID de cliente OAuth 2.0, haz clic en el ID de cliente que creaste.
Haz clic en Descargar JSON.
Guarda el archivo como
client_secrets.json
.
Paso 3: Instala la biblioteca cliente de Google y otras dependencias
Instala la biblioteca cliente de Google y otras dependencias necesarias para el proyecto.
Java
Para agregar las bibliotecas cliente de Google y otras dependencias requeridas a tu
Para tu proyecto de Maven, edita el archivo pom.xml
en el directorio de tu proyecto y agrega el archivo
las siguientes dependencias:
<dependencies>
<!-- ... existing dependencies ... -->
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-chat</artifactId>
<version>v1-rev20230905-2.0.0</version>
</dependency>
<dependency>
<groupId>com.google.auth</groupId>
<artifactId>google-auth-library-oauth2-http</artifactId>
<version>1.19.0</version>
</dependency>
<dependency>
<groupId>com.google.oauth-client</groupId>
<artifactId>google-oauth-client-jetty</artifactId>
<version>1.34.1</version>
</dependency>
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.10.1</version>
</dependency>
</dependencies>
Python
Si aún no instalaste las bibliotecas cliente de Google para Python, ejecuta el siguiente comando en tu interfaz de línea de comandos:
pip3 install --upgrade google-api-python-client google-auth-oauthlib
Node.js
Para agregar las bibliotecas cliente de Google y otras dependencias requeridas a tu proyecto de Node.js, cambia al directorio de tu proyecto y ejecuta el siguiente comando: en tu interfaz de línea de comandos:
npm install "@googleapis/chat" open server-destroy
Apps Script
En este ejemplo, se usan Servicio de chat avanzado llamar a la API de Google Chat. Para activar el servicio en tu Proyecto de Apps Script:
- A la izquierda, haz clic en Editor .
- A la izquierda, junto a Servicios, haz clic en Agregar un servicio.
- Selecciona API de Google Chat.
- En Versión, selecciona v1.
- Haz clic en Agregar.
Puedes usar cualquier idioma que admita nuestra bibliotecas cliente.
Paso 4: Escribe una secuencia de comandos que llame a la API de Chat
Llamar a una API con autorización de OAuth es un proceso de varios pasos. En la Web o de escritorio, el proceso suele ser el siguiente:
- La app dirige al usuario a una página de autorización para solicitar acceso al usuario. datos especificados por los permisos de autorización. La app se identifica con el cliente Credenciales de ID.
- El usuario revisa los permisos solicitados por la aplicación y aprueba el para cada solicitud.
- El servidor de autenticación de Google redirecciona el navegador al HTTP de la app extremo junto con un código de autorización.
- La aplicación envía otra solicitud al servidor de autorización de Google al el código de autorización por un token de acceso.
- La aplicación usa el token de acceso para llamar a la API en nombre del usuario.
Para obtener más información sobre el proceso de autorización de OAuth, consulta Guía sobre cómo usar OAuth 2.0 para acceder a las APIs de Google.
Las siguientes muestras de código en Java, Python y Node.js usan un biblioteca cliente para ejecutar el flujo de autorización de OAuth. Abre un servidor HTTP local para el código de autorización del servidor de autorización, que luego intercambios por un token de acceso. En la muestra de código de Apps Script, este flujo de autorización se manejadas por Apps Script.
Después de completar el flujo de autenticación, la secuencia de comandos se autentica con el La API de Chat con el token de acceso del usuario y, luego, crea un espacio.
Java
- En el directorio de tu proyecto, abre el archivo.
src/main/java/com/google/chat/app/authsample/App.java
Reemplaza el contenido de
App.java
con el siguiente código:package com.google.chat.app.authsample; import com.google.api.client.auth.oauth2.Credential; import com.google.api.client.extensions.java6.auth.oauth2.AuthorizationCodeInstalledApp; import com.google.api.client.extensions.jetty.auth.oauth2.LocalServerReceiver; import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeFlow; import com.google.api.client.googleapis.auth.oauth2.GoogleClientSecrets; import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; import com.google.api.client.http.HttpTransport; import com.google.api.client.json.JsonFactory; import com.google.api.client.json.gson.GsonFactory; import com.google.api.client.util.store.FileDataStoreFactory; import com.google.api.services.chat.v1.HangoutsChat; import com.google.api.services.chat.v1.model.Space; import java.io.InputStreamReader; import java.util.Collection; import java.util.Collections; /** * Authenticates with Chat API via user credentials, then creates a Chat space. */ public class App { // Application OAuth credentials. private static final String KEYS_RESOURCE_URI = "/client_secrets.json"; // Define your app's authorization scopes. private static final Collection<String> SCOPES = Collections.singleton("https://www.googleapis.com/auth/chat.spaces.create"); // Directory to store user credentials. private static final java.io.File DATA_STORE_DIR = new java.io.File(System.getProperty("user.home"), ".store/auth-sample-app"); // Global instance of the JSON factory. private static final JsonFactory JSON_FACTORY = GsonFactory.getDefaultInstance(); // Global instance of the HTTP transport. private static HttpTransport httpTransport; // Global instance of the DataStoreFactory. The best practice is to make it a single // globally shared instance across your application. private static FileDataStoreFactory dataStoreFactory; public static void main( String[] args ) { try { // Run app. httpTransport = GoogleNetHttpTransport.newTrustedTransport(); dataStoreFactory = new FileDataStoreFactory(DATA_STORE_DIR); Credential userCredential = authorize(); Space response = App.createChatSpace(userCredential); // Print details about the created space. System.out.println(response); } catch (Exception e) { e.printStackTrace(); } } /** * Authorizes the installed application to access user's protected data. */ private static Credential authorize() throws Exception { // Load client secrets. GoogleClientSecrets clientSecrets = GoogleClientSecrets.load(JSON_FACTORY, new InputStreamReader(App.class.getResourceAsStream("/client_secrets.json"))); // Set up authorization code flow. GoogleAuthorizationCodeFlow flow = new GoogleAuthorizationCodeFlow.Builder( httpTransport, JSON_FACTORY, clientSecrets, SCOPES) .setDataStoreFactory(dataStoreFactory) .build(); // Authorize. return new AuthorizationCodeInstalledApp(flow, new LocalServerReceiver()).authorize("user"); } /** * Creates a Chat space. */ private static Space createChatSpace(Credential userCredential) throws Exception { // Build the Chat API client and authenticate with the user account. HangoutsChat chatService = new HangoutsChat.Builder( httpTransport, JSON_FACTORY, userCredential) .setApplicationName("auth-sample-app") .build(); // Create a Chat space. Space space = new Space() // To create a named space, set spaceType to SPACE. .setSpaceType("SPACE") // The user-visible name of the space. .setDisplayName("API-made"); return chatService.spaces().create(space).execute(); } }
Crea un nuevo subdirectorio llamado
resources
dentro del directorio de tu proyecto.Copia el archivo
client_secrets.json
en el subdirectorioresources
.Para configurar Maven a fin de que incluya el archivo de secretos del cliente en el paquete del proyecto, Edita el archivo
pom.xml
en el directorio de tu proyecto y agrega lo siguiente: de Terraform a la sección<build>
:<build> <!-- ... existing configurations ... --> <resources> <resource> <directory>resources</directory> </resource> </resources> </build>
Para configurar Maven de modo que incluya las dependencias en el paquete del proyecto y Para ejecutar la clase principal de tu aplicación, edita el archivo
pom.xml
en tu directorio del proyecto y agrega la siguiente configuración al Sección<plugins>
:<plugins> <!-- ... existing configurations ... --> <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <archive> <manifest> <mainClass>com.google.chat.app.authsample.App</mainClass> </manifest> </archive> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins>
Python
Guarda el siguiente código en un archivo llamado
chat_space_create_named.py
en el el mismo directorio que contieneclient_secrets.json
:from google_auth_oauthlib.flow import InstalledAppFlow from googleapiclient.discovery import build # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.spaces.create"] def main(): ''' Authenticates with Chat API via user credentials, then creates a Chat space. ''' flow = InstalledAppFlow.from_client_secrets_file( 'client_secrets.json', SCOPES) creds = flow.run_local_server() # Build a service endpoint for Chat API. service = build('chat', 'v1', credentials=creds) # Use the service endpoint to call Chat API. result = service.spaces().create( # Details about the space to create. body = { # To create a named space, set spaceType to SPACE. 'spaceType': 'SPACE', # The user-visible name of the space. 'displayName': 'API-made' } ).execute() # Prints details about the created space. print(result) if __name__ == '__main__': main()
Node.js
Guarda el siguiente código en un archivo llamado
chat_space_create_named.js
en el el mismo directorio que contiene el proyecto de Node.js yclient_secrets.json
:const fs = require('fs'); const path = require('path'); const http = require('http'); const url = require('url'); const destroyer = require('server-destroy'); const chat = require('@googleapis/chat'); // Application OAuth credentials. const keys = require('./client_secrets.json').installed; // Define your app's authorization scopes. // When modifying these scopes, delete the file token.json, if it exists. const scopes = ["https://www.googleapis.com/auth/chat.spaces.create"]; // Create a new OAuth2 client with the configured keys. const oauth2Client = new chat.auth.OAuth2( keys.client_id, keys.client_secret, 'http://localhost:3000' ); /** * Opens an HTTP server to accept the OAuth callback. * In this simple example, the only request to our webserver is to /?code=<code>. */ async function authenticate(scopes) { const opn = (await import('open')).default; return new Promise((resolve, reject) => { // Generate the URL for authorization. const authorizeUrl = oauth2Client.generateAuthUrl({ access_type: 'offline', scope: scopes.join(' '), }); // Start the HTTP server to listen for the callback. const server = http .createServer(async (req, res) => { try { const qs = new url.URL(req.url, 'http://localhost:3000').searchParams; res.end('Authentication successful! Please return to the console.'); server.destroy(); const { tokens } = await oauth2Client.getToken(qs.get('code')); oauth2Client.credentials = tokens; resolve(oauth2Client); } catch (e) { reject(e); } }) .listen(3000, () => { // Open the browser to the authorize URL to start the workflow. opn(authorizeUrl, { wait: false }).then(cp => cp.unref()); }); destroyer(server); }); } /** * Authenticates with Chat API via user credentials, then creates a Chat space. */ async function createSpace() { // Create the Chat API client and authenticate with the authorized user. const chatClient = await chat.chat({ version: 'v1', auth: oauth2Client }); // Call the Chat API to create a space. const result = await chatClient.spaces.create({ // Details about the space to create. requestBody: { // To create a named space, set spaceType to SPACE. 'spaceType': 'SPACE', // The user-visible name of the space. 'displayName': 'API-made' } }); return result; } // Authenticate the user, execute the function, // then print details about the created space. authenticate(scopes) .then(createSpace) .then(console.log);
Apps Script
En el editor de Apps Script, edita el archivo
appsscript.json
y agrega el permiso de OAuth necesario para llamar a la API:"oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces.create" ]
Guarda el siguiente código en un archivo llamado
ChatSpaceCreateNamed.gs
en tu Proyecto de Apps Script:/** * Authenticates with Chat API via user credentials, then creates a * Chat space. */ function createSpace() { try { // Details about the space to create. // To create a named space, set spaceType to SPACE. // The user-visible name of the space is displayName. const space = {'displayName': 'API-made', 'spaceType': 'SPACE'}; // Call Chat API with user credentials to create the space. const result = Chat.Spaces.create(space); // Log details about the created space. console.log(result); } catch (err) { // TODO (developer) - Handle exception console.log('Failed to create space with error %s', err.message); } }
Paso 5: Ejecuta la secuencia de comandos de ejemplo
Para ejecutar el ejemplo, desde la línea de comandos, navega al directorio que contiene los archivos de tu proyecto y, luego, ejecuta el siguiente comando:
Java
mvn compile assembly:single
java -jar target/auth-sample-app-1.0-SNAPSHOT-jar-with-dependencies.jar
Python
python3 chat_space_create_named.py
Node.js
node chat_space_create_named.js
Apps Script
Abre el archivo ChatSpaceCreateNamed.gs
en Apps Script.
Editor y haz clic en Ejecutar.
Se abre un navegador y se te indica que accedas a tu Cuenta de Google:
Después de acceder, aparecerá la pantalla de consentimiento de OAuth y se te pedirá que otorgues permiso a la app.
Después de que otorgues permiso, la secuencia de comandos llamará a
API de Chat, que responde creando la
Espacio de Chat con el nombre visible API-made
. La consola imprime
los detalles de la llamada a la API. Para encontrar el espacio, ve al panel Espacios de
Google Chat.
Soluciona problemas del ejemplo
Cuando ejecutas chat_space_create_named.py
, es posible que recibas el siguiente error:
Expected a JSON object with a single property for a "web" or "installed" application
Este mensaje de error significa que el archivo client_secrets.json
que descargaste
de la consola de Google Cloud no comienza con "web"
ni "installed"
propiedad. Después de la autenticación con el archivo descargado, si el código no
guarda el token de acceso en un archivo nuevo como token.json
; luego, el token de acceso
se escribe en client_secrets.json
, lo que puede causar este error durante
intentos de autorización.
Para resolver el error, descarga el archivo de secretos del cliente desde la consola de Google Cloud y guarda el archivo nuevo en el lugar del archivo actual.
Temas relacionados
Si tu aplicación necesita seguir usando los tokens de usuario fuera del permiso, haz lo siguiente: de un solo flujo, puede almacenar los tokens para reutilizarlos más tarde. En este caso, Tu aplicación necesita manejar los tokens de usuario de forma segura y las actualizaciones. y el vencimiento de tokens. Para obtener más información, consulta Guía de prácticas recomendadas para el uso de OAuth 2.0
Para descubrir qué más puede hacer la API de Chat, revisa el Documentación de referencia de la API de Chat