经过一番混乱之后,我确实从公共工作表中读到了:
curl https://sheets.googleapis.com/v4/spreadsheets/[sheetID]/values/A1?key=[MyAPIKey]
工作表ID来自Google工作表,而[MyAPIKey]来自https://developers.google.com/sheets/api/guides/authorizing#APIKey
它为我提供了对工作表的读访问权。
一旦我尝试写入工作表上的任何单元格(尽管它们是可公开写入的),它就会给我一个错误。我可以在没有任何密钥的情况下从我的浏览器中匿名编辑它们,但是,如果没有API密钥,我似乎无法编辑它们。
如果我发出:
curl https://sheets.googleapis.com/v4/spreadsheets/[sheetid]/values/Sheet1\!A1?valueInputOption=RAW?key=[MyAPIKey] -X PUT -d "{\"values\":[ [ \"Test\" ] ] }"
我收到:
{
"error": {
"code": 401,
"message": "Request is missing required authentication credential. Expected OAuth 2 access token, login cookie or other valid authentication credential. See https://developers.google.com/identity/sign-in/web/devconsole-project.",
"status": "UNAUTHENTICATED"
}
}
我认为这与Google Sheets API v4 append request receives HTTP 401 response for public feeds using API Key
有关我为此任务避免使用OAUTH2机制,我无法允许应用程序访问整个Google驱动器。如何通过基于authkey的方法完成基于选择性链接的访问?是否有其他方法可以在OAUTH2中提供一次一页的访问权限?
答案 0 :(得分:1)
不,您不能单独使用CURL执行Sheet操作。 Error 401表示您需要访问令牌来处理该表。因此,您需要使用OAuth流来消除该错误,并确保定义范围。
您可以使用Introduction to Sheets下面的一堆快速入门。