如何在 2 秒内将数据发送到 Google 表格?
我们需要什么?
把代码给我看看!
我该如何使用它?
注意: 本文中使用的“推送到 GSheet”服务已不再有效,但您可以使用Pizzly来托管您自己的版本。
我是谷歌API的忠实粉丝。我每天都会用到很多谷歌API,无论是在我的代码中,还是通过无数依赖它们的服务。
最近,我在运行一个爬虫脚本时,很快发现自己需要进行一些非常繁琐的复制粘贴操作才能将数据导入到 Google 表格中。我想应该有更好的方法来动态地将数据推送到电子表格中:
快速浏览了一下 Google Sheets API 参考文档,我找到了一个/append可以完美完成这项工作的接口。30 分钟后,我的脚本在后台运行,我一边喝着柠檬水一边享受着惬意时光 😎
如果我不是对谷歌API情有独钟,我肯定会转向其他方案。但是等等,20 minutes把数据发送到电子表格?拜托!我们得让它像在谷歌上搜索一样简单才行。
我们需要什么?
首先,我们需要了解 API。正如前面提到的,Google Sheets 提供了一个便捷的接口/append来推送任何类型的数据。它只需要将值格式化为二维数组即可array:
const values = [
// First row
["A1","A2","A3"],
// Second row
["B1","B2","B3"]
// Third row...
]
数据将始终追加到工作表中。因此,如果工作表第 1 行有一些值,则新值将添加到第 2 行(依此类推)。
接下来是身份验证。与大多数提供用户数据访问权限的 API 一样,Google Sheets API 使用 OAuth2。这是一种功能强大但设置起来也比较复杂的身份验证方案。
对我们来说有趣的是,对 Google Sheets API 的每个请求都需要一个access_token很长的、无法猜测的字符串,以证明该请求是代表用户发出的。
Google 提供了一个Playground来轻松获取刷新令牌。但我将使用名为Pizzly 的服务,它可以安全地为我处理 OAuth 流程并处理刷新令牌,而 Playground 无法做到这一点(免责声明:我参与了 Pizzly 的开发)。
还有其他需要注意的地方吗?我们目前还不清楚数据应该追加到哪个电子表格中。spreadsheetID文档里是这么写的。每个电子表格都有一个唯一的 ID,我们可以通过查看以下信息找到它URL:
把代码给我看看!
总而言之,只需 10 行代码即可将数据发送到任何电子表格。
// 1. Run npm install node-fetch
// 2. Import an HTTP client
const fetch = require("node-fetch");
// 3. Declare spreadsheet and values to append
const spreadsheetId = 'SPREADSHEET_ID'
const data = [["firstname", "lastname"], ["John", "Doe"]]
// 4. Send data with a POST request
const baseUrl = "https://pushtogsheet.herokuapp.com";
const query = valueInputOption=RAW&pizzly_pkey=pope8Qy8qfYyppnHRMgLMpQ8MuEUKDGeyhfGCj;
const url = new URL(/proxy/google-sheets/spreadsheets/</span><span class="p">${</span><span class="nx">spreadsheetId</span><span class="p">}</span><span class="s2">/values/A1:append?</span><span class="p">${</span><span class="nx">query</span><span class="p">}</span><span class="s2">, baseUrl);
fetch(url.href, {
method: "POST",
body: JSON.stringify({ values: data }),
headers: { 'Pizzly-Auth-Id': 'CONNECT_FIRST' }
})
.then((res) => res.text())
.then(console.log)
.catch(console.error);
我该如何使用它?
我尽力让向Google 表格推送数据像在谷歌上搜索一样简单,并为此专门制作了一个网站:
本文中使用的“推送到 GSheet”服务已不再有效,但您可以使用Pizzly来托管您自己的版本。
PS:它是100%免费开源的✌️
文章来源:https://dev.to/mailmeteor/how-to-send-data-to-a-google-spreadsheet-in-2-seconds-1h0

