Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

211
Views
Usar el token de actualización de la API de Google Sheets para usar el método de actualización para la celda de la hoja

Actualmente estoy tratando de escribir datos en la celda A1 de una hoja de cálculo de Google a través de Javascript y la API de Google Sheets. Dado que el acceso de escritura y el método .update necesitan la identificación OAuth2, seguí el tutorial de esta excelente publicación .

Desafortunadamente, sigo recibiendo errores 401, lo que significa que no estoy autorizado a pesar de ofrecer un token de actualización y un token de acceso.

No estoy seguro de dónde y cómo procesar el token de acceso, ya que en el pasado solo usé solicitudes de lectura que se pueden completar con una clave API.

El código en cuestión:

 function get_access_token_using_saved_refresh_token() { const refresh_token = "INSERT REFRESH TOKEN"; const client_id = "INSERT CLIENT ID"; const client_secret = "INSERT CLIENT KEY"; const refresh_url = "https://www.googleapis.com/oauth2/v4/token"; const post_body = `grant_type=refresh_token&client_id=${encodeURIComponent(client_id)}&client_secret=${encodeURIComponent(client_secret)}&refresh_token=${encodeURIComponent(refresh_token)}`; let refresh_request = { body: post_body, method: "POST", headers: new Headers({ 'Content-Type': 'application/x-www-form-urlencoded' }) } fetch(refresh_url, refresh_request).then( response => { return(response.json()); }).then( response_json => { console.log(response_json); SheetRequest(response_json.access_token); }); } function SheetRequest(access_token, callback, request){ var url = 'https://sheets.googleapis.com/v4/spreadsheets/{INSERT SHEETID}/values/A1&key={INSERT API KEY}'; var request = { "majorDimension": "ROWS", "values": [ [ "test", ] ] }; var xhr = new XMLHttpRequest(); xhr.open("POST", url); xhr.setRequestHeader('Authorization', 'Bearer ' + access_token); xhr.setRequestHeader('Access-Control-Allow-Origin', '*'); xhr.setRequestHeader('Content-Type', 'application/json'); xhr.onload = function (e) { if (e) console.log(e); if (xhr.readyState === 4) { if (xhr.status === 200) { console.log(xhr.responseText); callback(xhr.responseText.toString()); } else { callback(null); console.log(xhr.status); } } else { console.log(xhr.status); }; }; xhr.send(JSON.stringify(request)); } get_access_token_using_saved_refresh_token();

about 4 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Pensé que su secuencia de comandos para recuperar el token de acceso es correcta. Entonces, cuando su token de acceso se puede usar para actualizar la hoja de cálculo usando Sheets API, ¿qué tal la siguiente modificación?

En esta modificación, su función de SheetRequest se modifica utilizando la API de búsqueda de Javascript.

Guión modificado:

 function SheetRequest(access_token) { var url = 'https://sheets.googleapis.com/v4/spreadsheets/{INSERT SHEETID}/values/A1?valueInputOption=USER_ENTERED'; fetch(url, { method: "PUT", headers: { "Authorization": "Bearer " + access_token, "Content-Type": "application/json" }, body: JSON.stringify({ "values": [["test"]] }) }) .then(res => res.json()) .then(res => console.log(res)) .catch(err => console.log(err)); }
  • En tu guión,

    • Para actualizar la celda "A1" de la primera pestaña de la hoja de cálculo por un valor de test , se requiere utilizar "Método: hojas de cálculo.valores.actualizar".
    • El punto final no es correcto.
    • Se requiere que la solicitud sea el método PUT.
  • Cuando se ejecuta este script, el valor de "prueba" se coloca en la celda "A1" de la pestaña 1at de la hoja de cálculo.

Referencias:

  • Método: hojas de cálculo.valores.actualización
  • Uso de la API de búsqueda
about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!