我有一个应用程序允许我使用 API 密钥从 Google 电子表格中读取数据。我只是让 HTTP GET 到这个地址并得到一个带有数据的响应。
https://sheets.googleapis.com/v4/spreadsheets/18soCZy9H4ZGuu**********BeHlNY1lD8at-Pbjmf8c/values/Sheet1!A1?key=AIzaSyAYJ***********pB-4iKZjYf4y0vhXP8OM
Run Code Online (Sandbox Code Playgroud)
但是当我尝试使用 HTTP PUT 写数据来寻址时
https://sheets.googleapis.com/v4/spreadsheets/18soCZy9H4ZGuu**********BeHlNY1lD8at-Pbjmf8c/values/Sheet1!A4?valueInputOption=RAW?key=AIzaSyAYJ***********pB-4iKZjYf4y0vhXP8OM
Run Code Online (Sandbox Code Playgroud)
它给了我 401 错误。发出 PUT 请求的代码:
using (WebClient wc = new WebClient())
{
byte[] res = wc.UploadData(link, "PUT", Encoding.ASCII.GetBytes(textBox1.Text));
MessageBox.Show(Encoding.Default.GetString(res));
}
Run Code Online (Sandbox Code Playgroud)
此外,电子表格是完全公开的,任何人都可以在未经授权的情况下读写。我的猜测是我不能使用 API Key 将数据写入电子表格,唯一的方法是使用 OAuth。
更新: 所以我刚刚尝试使用 Google.Apis.Sheets.v4 来写入值,现在我几乎 100% 确定 API 密钥不能用于将数据写入 Google 电子表格。好吧,那我就用 OAuth 2.0。