it-swarm.dev

Acesse a API da planilha do Google sem token de autenticação

Eu criei o Google Spreadsheet e dei acesso de edição a todos (posso editar mesmo sem login).

Aqui está o link . Gostaria de atualizar esta planilha com a API do Google Spreadsheet. Mas estou recebendo erro. Minha exigência é atualizar a planilha através da API mesmo sem credencial de acesso.

 enter image description here

10
Nageswaran

É possível gravar em planilha eletrônica sem OAuth ou API Keys. Você precisa usar Service Account Keys

Aqui está o que eu fiz para o meu ambiente Node.js. 

  1. Obtenha uma chave de conta de serviço de https://console.cloud.google.com/apis/credentials (aqui você também pode restringir o que é permitido a essas chaves)
    1. Ao criar, certifique-se de clicar no Furnish a new private key
    2. Selecione JSON quando ele perguntar como baixar a chave.
  2. O service account key que você acabou de gerar inclui um client_email.
    1. Vá até sua planilha do google e permita que este client_email tenha acesso de gravação neste documento
  3. Use o seguinte código para autenticar

    let jwtClient = new google.auth.JWT(client_email, null, private_key, [ "https://www.googleapis.com/auth/spreadsheets", ]);//authenticate requestjwtClient.authorize(function(err, tokens) { // at this point the authentication is done you can now use `jwtClient` // to read or write to the spreadsheet});

client_email e private_key são parte do service account key

Uma descrição mais detalhada pode ser encontrada aqui. http://isd-soft.com/tech_blog/accessing-google-apis-using-service-account-node-js/ Além disso, todo o crédito vai para esta página. 

4
Jürgen Brandstetter

Você precisa ser autorizado a fazer tais solicitações

Cada solicitação que seu aplicativo envia à Google Sheets API precisa Identificar seu aplicativo para o Google. Há duas maneiras de identificar Seu aplicativo: usando um token OAuth 2.0 (que também autoriza a solicitação ) E/ou usando a chave de API do aplicativo. Veja como Determinar quais dessas opções usar:

Se a solicitação exigir autorização (como uma solicitação de dados privados de um indivíduo ), O aplicativo deverá fornecer um token OAuth 2.0 com a solicitação. O aplicativo também pode fornecer a chave da API, mas não é necessário. Se a solicitação não exigir autorização (Como uma solicitação de dados públicos), o aplicativo Deverá fornecer a chave da API ou um token OAuth 2.0 ou Ambos - Qualquer que seja a opção mais conveniente para você.

É isso aí. Não há autorização de exclusão.

3
noogui

Finalmente cavou fundo o suficiente e encontrou a resposta. Qualquer tipo de escrita, mesmo para folhas publicamente editáveis, requer um fluxo OAuth:

https://issuetracker.google.com/issues/36755576#comment3

0
Andrew