18

Estoy intentando descubrir cómo puedo agregar un botón a la ventana de redacción de Gmail.API de extensión/gadget de Gmail: ¿cómo agregar un botón a la barra de herramientas de redacción?

En "Gmail Labs" tienen algunas extensiones que agregan ciertos botones. Por ejemplo, el botón "Enviar & Archivar" y el botón "Insertar imágenes", así que supongo que es posible.

Revisé su API here y parece que puede agregar un gadget a la barra lateral izquierda o utilizar gadgets contextuales que dependen del contexto del mensaje. Estoy buscando una manera de agregar un botón a la barra de herramientas de la ventana de redacción, y ambas opciones parecen no ser compatibles.

¿Sabes cómo se puede hacer esto?

Si no es posible usar la API de Gmail, ¿hay otra forma de lograrlo? ¿Tal vez al crear una extensión de Google Chrome o scripts de usuario?

Agradecería cualquier información que pueda orientarme en la dirección correcta.

Gracias.

+0

¿Ha terminado de trabajar en esto? –

+1

Ver http://stackoverflow.com/a/35192213/165673 para mi solución – Yarin

Respuesta

23

Los laboratorios de Gmail tienen permisos especiales porque están escritos por empleados de Google. Desafortunadamente, los mortales no tenemos ese poder. Hay una forma de evitarlo, por supuesto, y ha señalado correctamente que es para hacer un Chrome Extension o un UserScript. Si elige hacer una extensión de Chrome it will just be a wrapper for a UserScript anyway

Deberá crear e inyectar el botón mediante programación. Esto implicará bastante buscar el código fuente de Gmail (spoiler: es feo).

Sin más detalles sobre lo que quiere hacer, no podré brindarle mucha más ayuda pero puedo ayudarlo con un problema de inmediato. Tienes que hacer que tu script espere hasta que finalice el proceso de carga de Gmail, lo cual es un desafío. Esta es la solución que estoy usando actualmente en minimalista:

function bootstrap() { 
    target = document.querySelectorAll('.vt:not(.SFzvCe)'); 
    if (document.querySelectorAll('html.xiu1Fc, html.aao')[0] == null) { 
     return; 
    } 
    if (target.length > 0) { 
     // loaded, do stuff 
    } else { 
     window.setTimeout(bootstrap, 200); 
    } 
} 
window.addEventListener('DOMSubtreeModified', bootstrap); 

Esa versión espera a que el chat se cargue completamente. Avíseme si tiene alguna otra pregunta: @anstosa

+0

¿Alguna sugerencia para API no oficiales o cómo extraer elementos de la interfaz de usuario de GMail? –

+3

El único que conozco es el de James Yu [Gmailr] (http://www.jamesyu.org/2011/02/05/introducing-gmailr-an-unofficial-javscript-api-for-gmail/). No lo he usado personalmente, pero he visto el código y está muy bien ejecutado y bastante completo. –

+1

En este punto [gmail.js] (https://github.com/KartikTalwar/gmail.js) se ve como la mejor biblioteca, inspirada en Gmailr. También hay un proyecto de [extensión de Chrome] (https://github.com/KartikTalwar/gmail-chrome-extension-boilerplate) para comenzar. – Yarin

Cuestiones relacionadas