Gadget contextual de Gmail(complemento/extensión de Gmail): ¿En desuso? ¿Imposible? ¿Cómo?(No se puede hacer OAuth 2.0)
oauth-2.0 google-oauth (4)
Necesitamos desarrollar una extensión de gmail interna para procesar los correos electrónicos entrantes y permitir que los destinatarios interactúen con nuestro software interno. He estado tratando de averiguar cómo usar OAuth 2.0 en el gadget contextual de Gmail, pero no puedo encontrar ninguna documentación específica para esto. No pude encontrar nada útil cuando busqué el desbordamiento de pila con contextual + google-oauth (palabra clave recomendada por Google).
Antes de darme páginas estándar, asegúrese de que tenga esto:
- Como mínimo, un ejemplo de Gmail contextual gadget manifest.xml que utiliza OAuth 2.0
- Idealmente, con una explicación de cómo implementarlo en un dominio (no en un mercado), entonces sé que en realidad fue implementado y probado.
Por ejemplo, el ejemplo estándar de saludo en la página de Gadgets contextuales utiliza OpenID ("openIdRealm"), y se escribió antes de OAuth 2.0:
OpenID NO está permitido en OAuth 2.0:
https://developers.google.com/apps-marketplace/practices#3_use_oauth20
Su aplicación no debe usar OpenID o OAuth1.0. Cualquier evidencia de dicho uso resultará en que su solicitud no apruebe el proceso de revisión.
Tenga en cuenta que los gadgets contextuales son aplicaciones de Javascript del lado del cliente, muy diferentes de las aplicaciones de servidor web y las aplicaciones instaladas. Entonces OAuth 2.0 debería usarse así:
https://developers.google.com/accounts/docs/OAuth2#clientside https://developers.google.com/accounts/docs/OAuth2UserAgent
Pero los gadgets contextuales se ejecutan en un contenedor, que maneja la primera llamada de OAuth (google call, que devuelve la llamada a nuestro sitio web con tokens ...). Viviendo en el lado del cliente, los dispositivos contextuales "no pueden guardar secretos". nuestro sitio web (página de redireccionamiento, https://example.com/oauth2callback ) necesita guardar el token de acceso (y quizás el token de actualización) a la sesión a la que puede acceder nuestro código de gadget en el lado del cliente.
Lo ideal sería no utilizar SSO, que veo solo es "necesario para las aplicaciones implementadas en el mercado". La implementación alternativa es "para su dominio", que utiliza la consola de extensiones de Google Apps :
https://developers.google.com/google-apps/extensions-console/
Pero la consola de extensión dice, en la parte superior, "Estamos mejorando la experiencia del usuario, pruebe la nueva Consola de desarrolladores", que enlaza con:
Consola de desarrolladores :
- Muestra el proyecto que se creó anteriormente en la consola de extensiones de aplicaciones. Puedo hacer clic en él para abrir un menú grande (aparte, a la izquierda)
- API y autenticación / credenciales: creé ID de cliente y secreto para mi aplicación. Aparentemente, debo usar aplicaciones web, no cuenta de servicio o aplicación instalada, porque estoy tratando de acceder a algunos datos privados del usuario (acceso por correo electrónico), no solo a un servicio de Google, y no soy una aplicación instalada independiente.
No hay lugar para informar este ID de cliente en ningún lugar del gadget contextual. ¿Es registrarse y olvidarse?
También (¿un error?), Los permisos muestran la ID de mi cliente en "Cuenta de servicio" aunque NO creé las credenciales de la cuenta de servicio.
Y luego esto: no sé cómo implementar mi gadget contextual (que no es una aplicación independiente) en mi dominio desde esta nueva consola de desarrolladores. Parece que solo hay opciones relacionadas con la implementación en la nube en la pestaña Visión general y Calcular a la izquierda.
Cuando intento desplegar desde la consola de extensiones de aplicaciones (que supuestamente no está en desuso, solo se ha mejorado), aparece este error:
Google Apps Marketplace (I never deployed to marketplace, only my own domain)
Application installation not allowed.
The OAuth1.0 version is no longer available.
Instead, try installing the OAuth2.0 version.
[Return to dashboard] (button)
Además, el botón para volver al panel de control me lleva al sitio de administración del dominio, que no permite el desarrollo ni la implementación:
Por cierto, la consola de Apps Extensions nunca accede a la página de redireccionamiento que he creado, y tampoco lee el archivo de especificaciones del gadget en mi sitio (nunca accedió a Google según lo prometido), por lo que el mensaje de error debe indicar que manifest.xml no lo hace. use OAuth 2.0 ... O la consola de extensiones de aplicaciones no la usa por sí misma y me culpa por ello.
Entonces, la aplicación contextual de Gmail:
- ¿Obsoleto?
- ¿Imposible ahora?
- Autorizado con OAuth 2.0? ¿Cómo?
La documentación de los https://developers.google.com/gmail/contextual_gadgets es una mala broma, obsoleta y errónea, no pierda el tiempo.
Las respuestas aquí en SO me acercaron más, pero en realidad nunca logré que la cosa funcionara.
Por suerte terminé encontrando gmail.js , lo que me permitió escribir una extensión de Chrome para hacer lo que necesitaba ...
1- Descargue el proyecto de Gmail Chrome Extension Boilerplate , que es una extensión de chrome de ejemplo Hello world que usa gmail.js.
2- Actualizar la función principal en el archivo main.js a algo como esto:
var main = function(){
gmail = new Gmail();
gmail.observe.on("open_email", function(id, url, body, xhr) {
// Inject a toolbar:
var $email_body = gmail.dom.email_body();
$email_body.prepend(''<div class="my_toolbar"><a>Do something</a></div>'');
});
}
Eso te dará esto:
La forma descrita en https://developers.google.com/gmail/contextual_gadgets parece estar totalmente desactualizada. Incluso el formulario en la consola de Google Apps para gadgets parece estar desactualizado.
Debe seguir esta descripción: https://developers.google.com/apps-marketplace/preparing
Los gadgets contextuales ahora se desarrollan utilizando la consola de la API (no la consola de la aplicación) y hay un formulario para crear los extractores, etc.
Por favor, siga los pasos a continuación:
- Inicia sesión en tu administrador de Gmail
- abre una nueva pestaña y escribe http://console.developers.google.com
- Haga clic en la sección API del panel izquierdo de su Gmail
- Seleccione las siguientes APIs
yo. API de gmail
ii. API de Google Marketplace
iii. Calendario API
iv. Google Admin SDK - Después de habilitar todas las API anteriores, abra el SDK del mercado de Google Apps y haga clic en el enlace Configurar (tiene que generar el ID de cliente)
- Rellene los datos con los datos adecuados, debe cargar las imágenes del tamaño adecuado también
- Rellene todos los campos obligatorios y agregue los extractores como Google sugirió.
i) el nombre del parámetro debe ser según la API contextual y el valor para todos es ". *" de lo contrario, el gadget no aparecerá en gmail - Habilitar la URL del servicio universal
- Habilitar la extensión COB
- Agregue los extractores de gadgets contextuales de Gmail, puede agregar los múltiples extractores para el gadget, pero la URL del gadget debe ser la misma para todos los extractores.
- Puede agregar múltiples ámbitos para cada extractor
- Guarda todos los cambios.
Eso es todo !
Puede seguir el siguiente enlace para su referencia: https://developers.google.com/apps-marketplace/preparing
Tenía los mismos problemas también. Yo (apenas) logré tener mis gadgets en los correos electrónicos de mi dominio a través de los pasos a continuación. Esto es lo que puedo compartir;
1) Creó un proyecto a través de ( https://console.developers.google.com ). Encendido Marketplace SDK en el menú de navegación lateral de API. Una vez que esté encendido, vaya a la parte superior de la página y haga clic en "engranajes de engranaje" para el SDK del mercado de aplicaciones de Google. Esto lo llevará a una página con un enlace para (Ir a la consola original). Clic en el enlace.
2) Debes ser reenviado a una página de formulario. Rellene todos los campos requeridos en el formulario. Verifique la extensión COB y declare su ID de extractor (utilicé el extractor previamente enlatado, no lo he probado con extractores personalizados) en el campo de texto Extractor Url, la dirección URL de su gadget a través del campo de texto Gadget Url, y seleccione los ámbitos. Haga clic en el botón Agregar y luego en el botón Guardar cambios una vez que haya terminado.
3) Vaya al menú Acceso a la API y cree una ID de cliente de OAuth 2.
Aquí es donde los pasos no están claros para mí, pero compartiré lo que hice para tener los gadgets disponibles en mi dominio.
3) Hice clic en el botón Probar flujo de instalación en la parte superior del formulario.
4) Agregué al usuario administrador como el editor para este proyecto.
5) Luego tuve que cerrar sesión, borrar el caché, iniciar sesión como administrador / usuario de dominio para ver el gadget contextual en la parte inferior del correo electrónico.
Espero que esto ayude.