tools modo google developer depurar debug consola chrome abrir javascript google-chrome-extension google-spreadsheet-api

modo - javascript console chrome



Extensión de Chrome escribiendo en Google Spreadsheet (2)

Creo que tienes la misma pregunta que tuve hace algunos meses. Estaba buscando alguna biblioteca para hacer lo mismo pero no pude encontrar ninguna, así que gsloader creando una llamada gsloader . Estoy usando esta biblioteca en esta extensión de chrome de jiraProgressTracker . La extensión de Chrome está en desarrollo, pero la biblioteca gsloader está lista para usar.

Aquí está lo que tú necesitas hacer.

  1. Cree un proyecto de Google Cloud bajo this this . Se paciente, tomará algún tiempo.
  2. En "Aplicaciones registradas", no elimine la "Cuenta de servicio - Proyecto" .
  3. En "Aplicaciones registradas", registre una nueva aplicación, elija la aplicación web de la plataforma.
  4. Debajo de "APIs", selecciona "Drive API".
  5. En la aplicación recién creada, pega la url de tu aplicación de Chrome (como chrome-extension: //) para "origen web"
  6. Copie "ID de cliente" de OAuth 2.0 ID de cliente de la aplicación creada en el paso 3
  7. Agregue gsloader library, en su página html. Necesita require.js y js-logger y jQuery. Si no puede usar requirejs, hágame saber que intentaré crear una biblioteca eliminando la dependencia de requirejs, aunque puede llevar más tiempo hacerlo.
  8. A continuación hay un fragmento de código para ir con.
    // Hacer Autorización
    var clientId = "<your client id>";
    GSLoader.setClientId(clientId);

    // Cargar hoja de cálculo existente
    GSLoader.loadSpreadsheet("spreadsheet id");

    // Crear hoja de cálculo
    GSLoader.createSpreadsheet("spreadsheet id")

    Hay suficientes métodos y objetos disponibles para trabajar, en lugar de mencionar todos aquí, trataré de hacer que la documentación esté disponible.

Por favor, hágamelo saber, ¿cómo funciona con usted en general?

He estado investigando y por alguna razón no puedo encontrar un buen ejemplo que muestre esto en cualquier lugar, y estoy empezando a preguntarme si es posible.

Lo que estoy buscando es hacer que mi extensión escriba datos en una hoja de cálculo de Google, para que la hoja se use como una base de datos.

¿Alguien tiene alguna documentación que pueda seguir? Teniendo en cuenta que la API de la hoja de cálculo no parece permitir JavaScript, ¿es eso posible?

Gracias.


Sí, definitivamente es posible. He usado la API de hoja de cálculo extensivamente usando Javascript. Deberá usar la versión del Protocolo de la API como se documenta aquí: https://developers.google.com/google-apps/spreadsheets/

Esto requiere enviar solicitudes firmadas utilizando OAuth2 (los protocolos de autenticación más antiguos ya no son realmente confiables), por lo que sugiero usar una biblioteca OAuth2 como JSO. https://github.com/andreassolberg/jso

Cuando escriba su javascript, deberá escribir funciones que creen una cadena XML para interactuar con la API del protocolo. Analizar las respuestas es bastante sencillo. He incluido un fragmento del código que he usado. También puede ver mi respuesta a una pregunta relacionada utilizando JQuery aquí. JQuery .ajax POST to Spreadsheets API?

function appendSpreadsheet(){ //Constructs the XML string to interface with the Spreadsheet API. //This function adds the value of the param foo to the cell in the first empty row in the column called ''columnTitle''. //The Spreadsheet API will return an error if there isn''t a column with that title. function constructAtomXML(foo){ var atom = ["<?xml version=''1.0'' encoding=''UTF-8''?>", ''<entry xmlns="http://www.w3.org/2005/Atom" xmlns:gsx="http://schemas.google.com/spreadsheets/2006/extended">'',//''--END_OF_PART/r/n'', ''<gsx:columnTitle>'',foo,''</gsx:columnTitle>'',//''--END_OF_PART/r/n'', ''</entry>''].join(''''); return atom; }; var params = { ''method'': ''POST'', ''headers'': { ''GData-Version'': ''3.0'', ''Content-Type'': ''application/atom+xml'' }, ''body'': constructAtomXML(foo) }; var docId //Get this from the spreadsheet URL or from the Google Drive API. var worksheetId = ''od6''; //The worksheet Id for the first sheet is ''od6'' by default. url = ''https://spreadsheets.google.com/feeds/list/''+docId+''/''+worksheetId+''/private/full''; sendSignedRequest(url, handleSuccess, params); //Use your OAuth2 lib }