2014-10-06 18 views
18

Abbiamo bisogno di sviluppare un'estensione Gmail interna per elaborare le e-mail in arrivo, consentire ai destinatari di interagire con il nostro software interno. Ho cercato di capire come utilizzare OAuth 2.0 in Gadget contestuali di Gmail, ma non riesco a trovare alcuna documentazione specifica per questo. Non ho trovato nulla di utile quando ho cercato lo stack overflow con contestuale + google-oauth (parola chiave consigliata da Google).Gmail Contextual Gadget (plug-in/estensione Gmail): deprecato? Impossibile? Come? (Impossibile eseguire OAuth 2.0)

Prima mi dai pagine standard, si prega di assicurarsi che ha questo:

  • Minimamente, un esempio di Gmail contestuale manifest.xml gadget che utilizza OAuth 2.0
  • Idealmente, con la spiegazione di come distribuire in un dominio (non sul mercato), quindi so che è stato effettivamente distribuito & testato.

Ad esempio, il ciao esempio standard nella pagina Gadget contestuale utilizza OpenID ("openIdRealm"), ed è stato scritto prima di OAuth 2.0:

https://developers.google.com/gmail/contextual_gadgets

OpenID non è consentito in OAuth 2.0:

https://developers.google.com/apps-marketplace/practices#3_use_oauth20

Your application must not use OpenID or OAuth1.0. Any evidence of such usage will result in your application failing the review process.

Nota che i Gadget contestuali sono app JavaScript sul lato client, molto diverse dalle app del server Web e delle app installate. Così OAuth 2.0 deve essere utilizzato in questo modo:

https://developers.google.com/accounts/docs/OAuth2#clientside https://developers.google.com/accounts/docs/OAuth2UserAgent

Ma contestuali gadget eseguiti in un contenitore, che gestisce la prima chiamata di OAuth (google chiamare, che richiama il nostro sito web con gettoni ...). Vivendo sul lato client, i gadget contestuali "non possono mantenere segreti". il nostro sito web (pagina di reindirizzamento, https://example.com/oauth2callback) deve salvare il token di accesso (e magari aggiornare il token) alla sessione accessibile al nostro codice gadget sul lato client.

Preferisco non utilizzare SSO, che vedo è "necessario per le applicazioni distribuite sul mercato". L'implementazione alternativa è "per il tuo dominio", che utilizza di Google Apps Extensions Console:

https://developers.google.com/google-apps/extensions-console/

ma la console estensione dice, sulla parte superiore, "Stiamo migliorando l'esperienza degli utenti, provare la nuova console di sviluppatori", che collegamenti a:

https://console.developers.google.com/?redirected=true

Console per gli sviluppatori:

  • mostra il progetto di t hat è stato creato prima nella console delle estensioni di app. Posso fare clic su di esso per aprire un menu di grandi dimensioni (a parte, a sinistra)
  • API & Auth/Credentials - Ho creato l'ID client e il segreto per la mia app. A quanto pare, devo utilizzare le app Web, non l'account di servizio o l'app installata, perché sto tentando di accedere ad alcuni dati privati ​​dell'utente (accesso alla posta elettronica), non solo un servizio di Google, e non sono un'app installata autonomamente.

Non c'è spazio per segnalare questo ID client in qualsiasi punto del gadget contestuale. È registrato e dimenticato?

Inoltre (un errore?), le autorizzazioni mostrano il mio ID cliente sotto "Account servizio" anche se NON ho creato credenziali dell'account di servizio.

E poi questo: non so come distribuire il mio gadget contestuale (che non è un'app standalone) sul mio dominio da questa nuova Developers Console. Sembrano esserci solo le opzioni relative alla distribuzione del cloud sotto la panoramica e le schede Compute sulla sinistra.

Quando provo a schierare dal Extensions Console Apps (che presumibilmente non è deprecato, solo è migliorata), ottengo questo errore:

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) 

Per di più, tornare al tasto dashboard mi porta al site Admin di dominio che consente né sviluppo né di distribuzione:

https://admin.google.com/mydomain.com/

Tra l'altro, il Console Applicazioni estensioni mai accede alla pagina di reindirizzamento ho creato, e non legge il file specifiche del gadget sul mio sito sia (mai accessibile da google come promesso), quindi mi errore ssage deve dire che manifest.xml non usa OAuth 2.0 ... O Apps Extensions Console non lo usa da solo e mi incolpa per questo!

Quindi, Gmail App contestuale:

  • obsolete?
  • Impossibile ora?
  • Autorizzato con OAuth 2.0? Come?
+0

Hai controllato questo post del blog che attraversa en spiegazione per esempio di utilizzo contestuale gadget gmail : http://pipetree.com/qmacro/blog/2010/06/getting-started-with-gmail-contextual-gadgets/ – user3378649

+0

Ho guardato il post. Il post è del 2010, che è prima di OAuth 2.0, che è ora richiesto. –

risposta

4

Aveva gli stessi problemi pure. Io (a malapena) sono riuscito ad avere i miei gadget nelle email del mio dominio tramite i passaggi seguenti. Ecco cosa posso condividere;

1) Creato un progetto tramite (https://console.developers.google.com). Attivato SDK di Marketplace nel menu di navigazione laterale delle API. Una volta acceso, vai in cima alla pagina e fai clic su "ingranaggi ingranaggi" per l'SDK di Google Apps Marketplace. Questo ti porterà a una pagina con un link per (Vai alla console originale). Clicca sul link.

2) Dovresti essere inoltrato a una pagina di modulo. Compila tutti i campi richiesti nel modulo. Controlla l'estensione COB e dichiara il tuo ID estrattore (ho usato l'estrattore pre-inscatolato, non l'ho testato con estrattori personalizzati) sotto Url Extractor campo di testo, l'URL del tuo gadget tramite Url gadget campo di testo e seleziona gli ambiti. Fai clic sul pulsante Aggiungi, quindi sul pulsante Salva modifiche una volta terminato.

3) Accedere al menu Accesso API e creare un ID client OAuth 2.

Ecco dove i passaggi non sono chiari per me, ma condividerò ciò che ho fatto per avere i gadget disponibili sul mio dominio.

3) ho cliccato sul tasto di prova Installare flusso sulla parte superiore del modulo ..

4) ho aggiunto l'utente admin come l'editor per questo progetto.

5) Ho quindi dovuto disconnettersi, svuotare la cache, accedere come utente admin/dominio per visualizzare il gadget contestuale nella parte inferiore dell'e-mail.

Spero che questo aiuti.

+0

Mi dispiace che in realtà io abbia rinunciato alle app contestuali e sia andato avanti. Avevo intenzione di acquistare il servizio di posta di Google per il mio sito Web per testarlo, ma dopo il problema è stato, ho deciso di non pagare Google (e ho esaurito il periodo di test di 30 giorni ora); non rendono facile lo sviluppo delle proprie API. Se riuscirò a persuadere il mio capo, metterò alla prova la tua soluzione sul sito web della società che non ho accesso alla direzione (forse il prossimo martedì). –

0

prega di seguire le istruzioni riportate di seguito :

  1. Accesso al tuo amministratore di Gmail
  2. aperta una nuova scheda e digitare http://console.developers.google.com
  3. Fare clic sulla sezione API dal pannello sinistro di Gmail
  4. Selezionare le seguenti API
    i. API gmail
    ii. API di Google Marketplace
    iii. Calendar API
    iv. Google Admin SDK
  5. Dopo aver abilitato tutte le API precedenti, apri l'SDK di Google Apps Marketplace e fai clic su Configura link (Devi generare l'ID cliente)
  6. Compila i dati con i dati appropriati, devi caricare la dimensione corretta immagini anche
  7. Compila tutti i campi obbligatori e aggiungi gli estrattori come suggerito da Google.
    i) param name dovrebbe essere secondo API e di valore per tutti è contestuale "*" altrimenti gadget non verranno visualizzati in Gmail
  8. Attivare l'URL del servizio universale
  9. Abilitare l'estensione COB
  10. Aggiungere Gmail Estrattori di gadget contestuali, è possibile aggiungere gli estrattori multipli per il gadget ma l'URL del gadget deve essere uguale a tutti gli estrattori
  11. È possibile aggiungere più ambiti per ciascun estrattore
  12. Salvare tutte le modifiche.

Questo è tutto!

si può seguire il link qui sotto per il vostro riferimento: https://developers.google.com/apps-marketplace/preparing

5

La documentazione per Google Contextual Gadgets è una cattiva barzelletta obsoleto e sbagliato, non perdete il vostro tempo.

Le risposte qui su SO mi hanno avvicinato, ma in realtà non ho mai funzionato.

fortuna ho finito per trovare gmail.js, che mi ha permesso di scrivere un estensione Chrome per fare quello che mi serviva ...

1- Scarica il progetto Gmail Chrome Extension Boilerplate, che è un esempio Ciao mondo estensione Chrome utilizzando gmail. js.

2- Aggiornare la funzione principale nel principale.il file js a qualcosa di simile:

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

Che ti do questo:

enter image description here

+0

Ciao @Yarin puoi spiegare come pubblicare le modifiche al codice sopra all'interno di gmail? –