google-api - 使用服务器 key 时 Google Sheets API 返回 "The caller does not have permission"

标签 google-api google-sheets google-sheets-api

我已在 API 管理器中生成了服务器 key ,并尝试在我的 Mac 上执行以下操作:

curl 'https://sheets.googleapis.com/v4/spreadsheets/MySheetID?ranges=A1:B5&key=TheServerKeyIGeneratedInAPIManager'

但这就是它返回的内容:

{
 "error": {
    "code": 403,
    "message": "The caller does not have permission",
    "status": "PERMISSION_DENIED"
  }
}

我在这里做错了什么?

最佳答案

要解决此问题,请尝试:

  1. 创建服务帐户:https://console.developers.google.com/iam-admin/serviceaccounts/
  2. 在选项中,创建一个 key :该 key 是您常用的 client_secret.json - 以相同的方式使用它
  3. 指定服务帐号的角色所有者(成员名称 = 服务帐号 ID = 服务帐号电子邮件地址,例如:thomasapp@appname-201813.iam.gserviceaccount.com
  4. 复制您的服务帐户的电子邮件地址 = 服务帐户 ID
  5. 只需在浏览器中转到您想要与之交互的 Google 工作表
  6. 前往屏幕右上角的“分享”
  7. 转到高级设置并与您的服务帐户的电子邮件地址共享,例如:thomasapp@appname-201813.iam.gserviceaccount.com

关于google-api - 使用服务器 key 时 Google Sheets API 返回 "The caller does not have permission",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38949318/

相关文章:

php - 使用社区 SDK 与 Google、Facebook、Twitter 进行身份验证

Python - Gspread请求错误401

javascript - 用于删除找到字符串的任何行的 Google 电子表格脚本

javascript - 数组中的 Google 电子表格

json - 带有 R 的 Google 地方

c# - 如何在 C# 中使用 google OAuth2 后获取电子邮件?

google-sheets - 按周、月汇总结果以使用工作表绘图

java - 403 - 权限不足,无法使用 Java 将数据写入 Google 电子表格

android - 适用于 Android 的 Google 日历 API - 如何将房间添加为 Activity 的 guest ?

google-sheets - 获取当前行中特定列的值?