2013-02-16 13 views
7

Hanno cercato in alto e in basso per questo. Ho una pagina web di base HTML/CSS/JS. Voglio che gli utenti siano in grado di visitare la pagina e aprendo la pagina, viene effettuata una chiamata a uno script google che ho creato che prende informazioni da un foglio di calcolo e ne visualizza alcune sulla pagina. Spero di non dover fare nessuna fantasia come nei tutorial di Google perché nessuno di loro mi è stato di aiuto.Come chiamare lo script di Google Apps dalla pagina Web

mia pagina web ----> Google Script ----> Google Spreadsheet
mia pagina web < ---- Google Script < ---- Google Spreadsheet

Gli utenti dovrebbero essere in grado di selezionare una voce visualizzato nella pagina Web (elemento popolato dal foglio di calcolo) e fare clic su un pulsante che consentirà agli utenti di inserire una nuova pagina con un URL derivato dall'elemento selezionato.

Questo è essenzialmente un programma di chat room in cui le chat room sono memorizzate su un foglio di calcolo. Voglio che gli utenti siano in grado di creare una nuova chat room che dovrebbe aggiornare il foglio di calcolo di Google.

risposta

15

Cercare di utilizzare i parametri GET. https://stackoverflow.com/a/14736926/2048063.

Here's a previous question on the topic.

È possibile accedere ai parametri trasmessi da GET nella funzione doGet(e) utilizzando e.parameter. Se si chiama http://script.google......./exec?method=doSomething, quindi

function doGet(e) { 
    Logger.log(e.parameter.method); 
} 

doSomething sarà scritto nel registro, in questo caso.

Il ritorno dei dati dallo script può essere eseguito utilizzando lo ContentService, che consente di servire JSON (mi raccomando). JSON è il più semplice (secondo me) su GAS e anche sul client.

La chiamata iniziale "populate list" sarebbe simile a questa. Lo scriverò in jQuery perché sento che è molto pulito.

var SCRIPT_URL = "http://script.google.com/[....PUT YOUR SCRIPT URL HERE....]/exec"; 
$(document).ready(function() { 
    $.getJSON(SCRIPT_URL+"?callback=?", 
       {method:"populate_list"}, 
       function (data) { 
       alert(JSON.stringify(data)); 
       }); 
}); 

E il GAS corrispondente che produce questo.

function doGet(e) { 
    if (e.parameter.method=="populate_list") { 
    var v = {cat:true,dog:false,meow:[1,2,3,4,5,6,4]}; //could be any value that you want to return 
    return ContentService.createTextOutput(e.parameter.callback + "(" + JSON.stringify(v) + ")") 
     .setMimeType(ContentService.MimeType.JAVASCRIPT); 
    } 
} 

Questo metodo è denominato JSONP ed è supportato da jQuery. jQuery lo riconosce quando inserisci lo ?callback=? dopo il tuo URL. Racchiude l'output in una funzione di callback, che consente a tale funzione di essere eseguita sul tuo sito con i dati come argomento. In questo caso, la funzione di callback è quella definita nella riga che legge function (data) {.

+0

Anche se sono ancora perso, sono sicuro che la tua risposta è corretta. – carter

+0

Ho aggiunto un paio di segmenti di codice di esempio. Spero che questo ti aiuti! –

+0

Ottima risposta, Phil! – ScampMichael

Problemi correlati