Ins*_*ite 47 google-api google-sheets google-sheets-api
我在API Manager中生成了一个服务器密钥,并试图在我的Mac上执行以下操作:
curl 'https://sheets.googleapis.com/v4/spreadsheets/MySheetID?ranges=A1:B5&key=TheServerKeyIGeneratedInAPIManager'
Run Code Online (Sandbox Code Playgroud)
但这就是它的回报:
{
"error": {
"code": 403,
"message": "The caller does not have permission",
"status": "PERMISSION_DENIED"
}
}
Run Code Online (Sandbox Code Playgroud)
我在这做错了什么?
Tho*_*uin 63
要解决此问题,请尝试:
它对我有用:)
WLa*_*tif 32
我知道回答有点晚,但是其他人也在努力解决同样的问题.
只需将工作表的权限更改为驱动器上的公共权限,即可通过API调用进行访问而无需身份验证.
要更改访问权限:
发送API请求以从工作表中获取数据而无需身份验证
注意:如果工作表包含敏感数据,则将其公开并且使用经过身份验证的访问权限进行操作是不安全的.
Ema*_*uel 29
答案的视觉简化:
选项 2 - 使用服务帐户电子邮件共享文件(IAM 和管理 -> 服务帐户 -> 详细信息 -> 电子邮件)
Hor*_*ren 21
一定要注意@KishanPatel的评论:
此外,您可以使用特定的电子邮件Ex分享此工作表.您的服务帐户(项目)电子邮件."client_email":"XXXXX@northern-gasket-XXXX.iam.gserviceaccount.com",这将允许您的脚本访问工作表.
最简单的方法是使用 gcloud cli 进行修复。更多文档在这里https://cloud.google.com/pubsub/docs/quickstart-cli#before-you-begin
安装 gcloud
sudo apt-get install google-cloud-sdk
Run Code Online (Sandbox Code Playgroud)
然后打电话
gcloud init
Run Code Online (Sandbox Code Playgroud)
然后检查您的活动项目和凭据
gcloud config configurations list
Run Code Online (Sandbox Code Playgroud)
如果不行,请确保您使用正确的帐户进行身份验证:
gcloud auth list
* account 1
account 2
Run Code Online (Sandbox Code Playgroud)
如果不是,请更改为项目的帐户:
gcloud config set account `ACCOUNT`
Run Code Online (Sandbox Code Playgroud)
根据账户的不同,项目列表会有所不同:
gcloud projects list
- project 1
- project 2...
Run Code Online (Sandbox Code Playgroud)
切换到想要的项目:
gcloud config set project `PROJECT NAME`
Run Code Online (Sandbox Code Playgroud)
然后使用 创建应用程序默认凭据gcloud auth application-default login,然后 google-cloud 将自动检测此类凭据。
| 归档时间: |
|
| 查看次数: |
35306 次 |
| 最近记录: |