求助: 怎么使用 Google api 访问自己私人表格

2022-02-15 18:06:38 +08:00
 rayn32

在 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 访问自己私人表格

1955 次点击
所在节点    Google
11 条回复
menglddd
2022-02-15 18:25:47 +08:00
需要在 console 中的开启对应的 api ,并在用户同意屏幕处配置权限
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
lithiumii
2022-02-15 20:49:43 +08:00
你要先建立一个服务用户,获得一个特别长的但是类似邮件格式的地址,把表格填这个地址分享给这个用户,才能有权限
rayn32
2022-02-15 21:36:47 +08:00
@youthfire 是不是本地跑 sample 后,然后直接在服务器上用 credentials.json 文件就可以操作了,一次授权其它 ip 服务器都可以运行? 等会我试试这个方法
@lithiumii 这个我也在尝试,不过官方文档的示例真是看不懂,后来网上找了 python 的 gspread 库,好像可以运行了
rayn32
2022-02-15 21:37:45 +08:00
@lithiumii 还有这个方法有些麻烦,每次建立新的 Excel 都要重新分享给这个服务用户
tonyaiken
2022-02-16 00:18:39 +08:00
@lithiumii 如果生成的用户自己的 token 可以访问用户 Drive 里所有文件
damngoto
2022-02-16 10:08:28 +08:00
@youthfire 根本原因是谷歌的产品本身就很乱,不成体系。
不过就算但论文档质量,离微软也还有很大距离。
HankAviator
2022-02-16 10:30:15 +08:00
@youthfire 我一个完全不会调接口的看谷歌的文档都调成功了,感觉文档挺好的啊,还有 API 试验场可以自己测。

顺手一搜就有回答 https://stackoverflow.com/a/49965912/5303860
rayn32
2022-02-16 10:54:54 +08:00
用 OAuth 2.0 客户端 ID 方法创建 API 终于搞出来了,这个国内网络问题真是太伤脑壳了
国内认证登录成功后 python 一直返回 ssl 类的错误,都登录账户授权了,结果返回错误。。。
最后解决: ssh 连接国外的服务器之后用 ssh 隧道,国内电脑上登录授权链接后服务器上也返回成功,获取了 authorized_user 信息。 之后表格不用再授权给服务账号也可以访问了
总结坑,国内网络问题,开了翻墙全局也有问题,之前一直以为是 pyton 语言链接问题。。。有钱可以直接买个临时 Windows 登录获取授权信息
youthfire
2022-02-16 11:09:06 +08:00
@HankAviator 可能我是业余开发者的关系。一般看第三方库的文档就觉得很清晰,而接触到 google api 的时候就觉得特别乱,比如对于 Google Drive 的交互,看 pypi 上的三方库一看就明白,但读不明白它的官方操作。
@rayn32 我都是用 pysocks 临时走代理,功能完成后(比如下载),再关闭保持正常连接
HankAviator
2022-02-16 11:21:52 +08:00
@youthfire 我都不是开发者,我是数据分析师😂🤣看不懂的用试验场跑几个就很清楚了,还不用自己现去配 API 权限,也不用写代码

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/834055

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX