Insira novas linhas na Google Spreadsheet via CURL / PHP – COMO?

Existe um script ou tutorial sobre como fazer isso? Como implementar a inserção de dados do meu aplicativo PHP em uma Planilha do Google?

Eu examinei a API ( https://developers.google.com/google-apps/spreadsheets/ ) e não há códigos / exemplos de PHP.

Eu tentei a implementação da Biblioteca Zend, mas parece que esta abordagem está muito desatualizada, pois estou obtendo alguns erros tolos em uma simples inserção de linha.

Não creio que possa usar o Google Apps Script ( https://developers.google.com/apps-script/reference/spreadsheet/ ), pois não vejo como posso codificar e desencadear a partir de um script PHP.

Algo mais?

Não existe uma API viável para isso em que possamos usar e usar facilmente?

Eu não acho que posso usar o Google Apps Script, pois não vejo como posso codificar e triggersr a partir de um script PHP

Certamente você pode. Você pode criar um serviço da web usando o Google Apps Script, que pode receber e processar solicitações de serviço. É simples passar parâmetros para o serviço web, isso pode ser feito usando o CURL, por exemplo.

O exemplo a seguir é para uma planilha simples com duas colunas. Você pode adicionar mais linhas por:

curl -L  

ou pelo URL do navegador:

 https:// 

Esta planilha de exemplo é publicada aqui e abaixo é um exemplo de URL que pode ser usado para adicionar uma linha:

 https://script.google.com/macros/s/AKfycbzVDFmOeaQc4mDZhWCnwf0CUnX64YNhhnKIlTYhqtpBraINUf9e/exec?col1='Value for column 1'&col2='Another value' 

Instruções

Aqui está um passo a passo.

  1. Abra uma planilha do Google, assegure-se de que a planilha seja totalmente acessível (pública)
  2. Ferramentas -> Editor de scripts
  3. Copie o código abaixo e cole no editor
  4. Substitua o --spreadsheet-id-- pelo id da sua folha (fácil de encontrar isso)
  5. Arquivo -> Salvar
  6. Publicar -> Implementar como aplicativo da Web -> Versão = NOVO; definir o access conforme necessário
  7. Autorizar (irá solicitar-lhe creds) -> DEPLOY
  8. Você receberá agora uma URL para o script
  9. Anexe ?col1='Colum1Data'&col2='Colum2Data' ao URL ou edite conforme necessário para empurrar dados para a planilha a partir do URL
  10. FEITO

(Obrigado vr00n.)

Code.gs

Este poderia ser um script autônomo ou com contêiner; de qualquer forma, você precisa fornecer o ID da planilha, uma vez que o aplicativo da Web não é executado dentro de um contexto de planilha. Em vez de exibir html, ele usa o ContentService para enviar texto simples – você pode elaborar isso de qualquer maneira apropriada para sua aplicação.

 function doGet(e) { Logger.log( JSON.stringify(e) ); // view parameters var result = 'Ok'; // assume success if (e.parameter == undefined) { result = 'No Parameters'; } else { var id = '--spreadsheet-id--'; // Spreadsheet id var sheet = SpreadsheetApp.openById(id).getActiveSheet(); var newRow = sheet.getLastRow() + 1; var rowData = []; for (var param in e.parameter) { Logger.log('In for loop, param='+param); var value = stripQuotes(e.parameter[param]); //Logger.log(param + ':' + e.parameter[param]); switch (param) { case 'col1': rowData[0] = value; break; case 'col2': rowData[1] = value; break; default: result = "unsupported parameter"; } } Logger.log(JSON.stringify(rowData)); // Write new row to spreadsheet var newRange = sheet.getRange(newRow, 1, 1, rowData.length); newRange.setValues([rowData]); } // Return result of operation return ContentService.createTextOutput(result); } /** * Remove leading and trailing single or double quotes */ function stripQuotes( value ) { return value.replace(/^["']|['"]$/g, ""); } 

Você deve ler sobre a documentação do Serviço de conteúdo do Google, especialmente as precauções em torno do redirecionamento e informações confidenciais.