es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Menú de puntos dinámico en complementos de Google Workspace.

Estoy construyendo un complemento de Google Workspace y quiero utilizar el menú de puntos para mostrar dinámicamente una opción de “Cerrar sesión” después de que un usuario haya iniciado sesión.

Descubrí que las opciones del menú están definidas en el recurso de implementación de un complemento (también llamado manifiesto) como una matriz llamada “universalActions”. Por ejemplo, así:

“universalActions”: [{
“label”: “Configuración”,
“openLink”: “https://myapp.com/settings”
},{
“label”: “Cerrar sesión”,
“openLink”: “https://myapp.com/logout”
}]

Pero no puedo encontrar una forma de cambiar las “universalActions” después de la implementación.

En el ejemplo a continuación se muestra el complemento de Evernote antes y después del inicio de sesión.

En la segunda imagen, después del inicio de sesión, se ven las opciones adicionales del menú “Einstellungen” (que significa configuración) y “Abmelden” (que significa cerrar sesión). ¿Cómo puedo lograr que se muestren estas opciones solo después del inicio de sesión?

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para mostrar dinámicamente una opción “Cerrar sesión” en el menú de puntos después de que un usuario se haya iniciado sesión en un complemento de Google Workspace, puede agregar una declaración condicional en la función onHomepage() del script del complemento.

    Puede verificar si el usuario ha iniciado sesión y, si es así, agregar la opción “Cerrar sesión” al arreglo de universalActions en el manifiesto del complemento. Aquí hay un ejemplo de código:

    function onHomepage() {
      var isLoggedIn = checkIfUserIsLoggedIn(); // reemplace con su propia función para verificar si el usuario ha iniciado sesión
      var manifest = {
        // sus propiedades de manifiesto existentes aquí
        "universalActions": [
          {
            "label": "Configuración",
            "openLink": "https://myapp.com/settings"
          }
        ]
      };
    
      if (isLoggedIn) {
        manifest.universalActions.push({
          "label": "Cerrar sesión",
          "openLink": "https://myapp.com/logout"
        });
      }
    
      return CardService.newUniversalActionResponseBuilder()
          .displayAddOnCards([buildCard(manifest)])
          .build();
    }
    

    En este ejemplo, checkIfUserIsLoggedIn() es una función de marcador de posición que puede reemplazar con su propia lógica para verificar si el usuario ha iniciado sesión. Si el usuario ha iniciado sesión, se agrega la opción “Cerrar sesión” al arreglo universalActions en el manifiesto del complemento. Se utiliza la función buildCard() para construir la tarjeta del complemento con el manifiesto actualizado, que luego se muestra con displayAddOnCards().

    Con este enfoque, la opción “Cerrar sesión” solo se mostrará en el menú de puntos después de que un usuario haya iniciado sesión.

Comments are closed.