18

Sto cercando di capire come posso aggiungere un pulsante alla finestra di composizione di Gmail.API di estensione/gadget Gmail - come aggiungere un pulsante alla barra degli strumenti di composizione?

In "Gmail Labs" hanno alcune estensioni che aggiungono determinati pulsanti Ad esempio "Invia & Archivia" e pulsante "Inserimento immagini", quindi presumo che sia possibile.

Ho controllato la loro API here e sembra che sia possibile aggiungere un gadget alla barra laterale sinistra o utilizzare i gadget contestuali che dipendono dal contesto del messaggio. Sto cercando un modo per aggiungere un pulsante alla barra degli strumenti della finestra di composizione, ed entrambe le opzioni sembrano non supportarlo.

Sai come si può fare?

Se non è possibile utilizzare l'API di Gmail, esiste un altro modo per ottenerlo? Forse creando un'estensione Google Chrome o script utente?

Gradirei qualsiasi informazione che possa indirizzarmi nella giusta direzione.

Grazie.

+0

Avete mai lavorato su questo? –

+1

Vedere http://stackoverflow.com/a/35192213/165673 per la mia soluzione – Yarin

risposta

23

I Gmail Lab hanno permessi speciali perché sono scritti da Google Dipendenti, sfortunatamente noi mortali non abbiamo questo potere. Ovviamente c'è un modo per aggirarlo e hai giustamente sottolineato che è quello di creare un Chrome Extension o un UserScript. Se si sceglie di eseguire un'estensione Chrome

Si deve creare e iniettare il pulsante a livello di codice. Ciò comporterà un bel po 'di scansione del codice sorgente di Gmail (spoiler: è brutto).

Senza ulteriori dettagli su ciò che si vuole fare, non sarò in grado di fornire molto più aiuto, ma posso aiutarti subito con un problema. Devi fare in modo che il tuo script attenda fino al completamento del processo di caricamento di Gmail, che è un po 'una sfida. Questa è la soluzione Attualmente sto usando in Minimalist:

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); 

Tale versione attende la chat a pieno carico. Fatemi sapere se avete altre domande: @anstosa

+0

Eventuali puntatori per API non ufficiali o come estrarre elementi dall'interfaccia utente di GMail? –

+3

L'unico che conosco è [Gmailr] di James Yu (http://www.jamesyu.org/2011/02/05/introducing-gmailr-an-unofficial-javscript-api-for-gmail/). Non l'ho usato personalmente ma ho guardato il codice ed è estremamente ben eseguito e abbastanza pieno di funzionalità. –

+1

A questo punto [gmail.js] (https://github.com/KartikTalwar/gmail.js) sembra la libreria migliore, ispirata a Gmailr. C'è anche un progetto [chrome extension] (https://github.com/KartikTalwar/gmail-chrome-extension-boilerplate) per iniziare. – Yarin

Problemi correlati