【问题标题】:How to use google spreadsheet api?如何使用谷歌电子表格 API?
【发布时间】:2021-11-21 21:24:43
【问题描述】:

所以我想要一个链接,无需登录即可提供数据,类似于 this 这是 v3 API 的教程。

在文档上说我想要的是一个 http 请求 这是 https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range} 但它给了我这个错误

{ "error": { "code": 403, "message": "The request is missing a valid API key.", "status": "PERMISSION_DENIED" } }

【问题讨论】:

    标签: google-api httprequest google-sheets-api


    【解决方案1】:

    在 Sheets API 的情况下,即使电子表格是公开共享的,至少也需要使用 API 密钥。这是当前的规范。因此,当您可以使用 API 密钥并且电子表格是公开共享的时,您可以使用 Sheets API 从电子表格中检索值。

    但是,如果你不能使用 API 密钥,那么下面的端点呢?

    端点 1:

    https://docs.google.com/spreadsheets/d/{spreadsheetId}/pub?gid={sheetId}&output=csv&range={range}
    

    端点 2:

    https://docs.google.com/spreadsheets/d/{spreadsheetId}/gviz/tq?gid={sheetId}&tqx=out:csv&range={range}
    
    • 在上述端点,不需要使用 API 密钥。
    • 在这种情况下,请使用 URL 编码对 range 的值进行编码。

    补充:

    关于您的以下情况。

    端点 1 给我一个错误,端点 2 可以工作,但它会为我下载一个 .txt,我不知道如何使用。

    在上述端点中,Google 电子表格的工作表被检索为 CSV 数据。

    关于您的以下新问题

    我会使用 API 密钥,但我不知道我应该将它放在链接中的某个地方,但我不确定如何。

    当您可以使用 API 密钥时,

    https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}/values/{range}?key={yourAPIkey}
    

    【讨论】:

    • 所以我在使用它时得到这个:对不起,此时无法打开文件。请检查地址,然后再试一次。端点 1 给了我一个错误,端点 2 有效,但它为我下载了一个 .txt,我不知道如何使用。我会使用 API 密钥,但我不知道我应该把它放在链接中的某个地方,但我不确定如何。
    • 端点 2 不起作用,它给了我一个文本文件,上面写着 )]}' {"version":"0.6","status":"error","errors":[ {"reason":"internal_error","message":"INTERNAL_ERROR","detailed_message":"无法加载电子表格。"}]}
    • @kid 感谢您的回复。我带来的不便表示歉意。关于您的 2 个问题,我在答案中添加了答案。你能确认一下吗?而且,关于您回复end point 2 doesn't work either it gives me a text file that said )]}' {"version":"0.6","status":"error","errors":[{"reason":"internal_error","message":"INTERNAL_ERROR","detailed_message":"Cannot load spreadsheet."}],很遗憾,我无法理解检索此错误消息的方法。这是因为我的技术不好。对此我深表歉意。