在 google 表格创建了一个私人的,没有共享 然后查找 api 文档找到 https://developers.google.com/sheets/api/quickstart/python 但是研究半天代码后,在 https://console.cloud.google.com/ 上面创建了一个 api 密钥 但是用密钥获取表格内容时 一直返回 403 Details: "The caller does not have permission"
求助: 怎么用 api 访问自己私人表格
1
menglddd 2022-02-15 18:25:47 +08:00
需要在 console 中的开启对应的 api ,并在用户同意屏幕处配置权限
|
2
youthfire 2022-02-15 19:36:22 +08:00
我一直觉得 google 的 api 文档写得糟糕
具体的有点淡忘了,我用的也是 python ,一定要跑那个 sample ,会在你本地产生 storage.json ,相当于本地授权了。另外会是不是会用到 client_secret.json 还是 credentials.json 倒是忘记了。 这个 google 文档的接口也是又乱又复杂,反正我是看不懂。用了一个第三方库,gsheets ,这个库最方便的地方就是可以很方便的把私有文档下载到本地,https://github.com/xflr6/gsheets |
3
lithiumii 2022-02-15 20:49:43 +08:00 via Android
你要先建立一个服务用户,获得一个特别长的但是类似邮件格式的地址,把表格填这个地址分享给这个用户,才能有权限
|
4
rayn32 OP |
8
HankAviator 2022-02-16 10:30:15 +08:00
@youthfire 我一个完全不会调接口的看谷歌的文档都调成功了,感觉文档挺好的啊,还有 API 试验场可以自己测。
顺手一搜就有回答 https://stackoverflow.com/a/49965912/5303860 |
9
rayn32 OP 用 OAuth 2.0 客户端 ID 方法创建 API 终于搞出来了,这个国内网络问题真是太伤脑壳了
国内认证登录成功后 python 一直返回 ssl 类的错误,都登录账户授权了,结果返回错误。。。 最后解决: ssh 连接国外的服务器之后用 ssh 隧道,国内电脑上登录授权链接后服务器上也返回成功,获取了 authorized_user 信息。 之后表格不用再授权给服务账号也可以访问了 总结坑,国内网络问题,开了翻墙全局也有问题,之前一直以为是 pyton 语言链接问题。。。有钱可以直接买个临时 Windows 登录获取授权信息 |
10
youthfire 2022-02-16 11:09:06 +08:00
@HankAviator 可能我是业余开发者的关系。一般看第三方库的文档就觉得很清晰,而接触到 google api 的时候就觉得特别乱,比如对于 Google Drive 的交互,看 pypi 上的三方库一看就明白,但读不明白它的官方操作。
@rayn32 我都是用 pysocks 临时走代理,功能完成后(比如下载),再关闭保持正常连接 |
11
HankAviator 2022-02-16 11:21:52 +08:00
@youthfire 我都不是开发者,我是数据分析师😂🤣看不懂的用试验场跑几个就很清楚了,还不用自己现去配 API 权限,也不用写代码
|