Ho appena fatto una cosa del genere. Ecco una ripartizione del mio processo.
Ho bisogno di tenere un elenco di citazioni da pagine web diverse e di aggiungere alcune informazioni ad ogni preventivo.
mio bookmarklet in modo dinamico genererà una forma google (ho appena visto The fonte della vera e propria forma di google che ho già creato), sarà riempire automaticamente l'URL corrente, il titolo della pagina, e il testo attualmente selezionato, rispetto a, il modulo verrà inviato.
Poiché ho bisogno di aggiungere manualmente le informazioni, non ho intenzionalmente incluso almeno un campo obbligatorio, quindi ricevo il modulo Google con un messaggio di errore (ma con url, titolo & preventivo già compilato). Ora posso aggiungere manualmente tutte le altre informazioni di cui ho bisogno e inviare il modulo.
Se il bookmarklet riempie tutti i campi richiesti, riceverai semplicemente la risposta di successo del modulo google "Grazie! La tua risposta è stata registrata."
Ho usato il seguente sito per generare un bookmarklet che utilizzano jQuery: http://benalman.com/code/test/jquery-run-code-bookmarklet/ (sto usando jQuery per essere in grado di accantonare ulteriori informazioni & contenuti dalla pagina web)
Per poter utilizzare quel sito correttamente, dovrete sfuggire al tuo one-liner html (è possibile utilizzare questo escape tool)
I passaggi necessari sono:
- Creare un modulo google/fogli di calcolo
- visualizzare l'origine della forma e copiare i campi che si desidera il bookmarklet per riempire
- Fuga tuo html e utilizzare this di scrivere lo script che riempiono le informazioni, questo sito creerà il bookmarklet per voi
Così nel mio caso:
1. ho creato una forma che comprende un campo di testo per contenere l'url, un altro campo di testo per tenere il titolo della pagina, un testo del paragrafo per contenere la citazione (la selezione testo edito). Il modulo include anche altri campi obbligatori che compilo manualmente.
2. ho preparato il seguente codice HTML:
<form method="POST"
action="https://spreadsheets.google.com/spreadsheet/formResponse?formkey=XYZXYZXYZXYZXYZXYZXYZ&ifq">
<input type="text" name="entry.0.single" value="" id="entry_0" />
<input type="text" name="entry.3.single" value="" id="entry_3" />
<textarea name="entry.2.single" id="entry_2"></textarea>
<input type="submit" name="submit" value="submit" />
</form>
(entry_0 - URL, entry_3 - titolo della pagina, entry_2 - citazione)
3. Dopo aver messo in una linea e sfuggendolo.Ho usato il seguente script:
frm = $(unescape('%3Cform%20action%3D%22https%3A//spreadsheets.google.com/spreadsheet/formResponse%3Fformkey%3DXYZXYZXYZXYZXYZXYZXYZ%26amp%3Bifq%22%20method%3D%22POST%22%3E%0A%3Cinput%20type%3D%22text%22%20name%3D%22entry.0.single%22%20value%3D%22%22%20id%3D%22entry_0%22%20/%3E%0A%3Cinput%20type%3D%22text%22%20name%3D%22entry.3.single%22%20value%3D%22%22%20id%3D%22entry_3%22%20/%3E%0A%3Ctextarea%20name%3D%22entry.2.single%22%20id%3D%22entry_2%22%3E%3C/textarea%3E%0A%3Cinput%20type%3D%22submit%22%20name%3D%22submit%22%20value%3D%22submit%22%20/%3E%0A%3C/form%3E'));
$(frm).children('#entry_0').attr('value',location.href);
$(frm).children('#entry_3').attr('value',$('title')[0].innerHTML);
$(frm).children('#entry_2').html(window.getSelection().toString());
$(frm).children('input[type=submit]').click()
Questo metodo è stato testato con il cromo. Buona fortuna!
per risolvere il problema con Firefox 405, l'uso libcurl. Dovrebbe essere in grado di farlo in PHP e Python. – razorsniper
Link utile: http://eureka.ykyuen.info/2014/07/30/submit-google-forms-by-curl-command/ –