如何在部署在Web服务器(Heroku)中的PyGSheets上验证Google云服务

2024-06-16 11:46:24 发布

您现在位置:Python中文网/ 问答频道 /正文

嗨,我想用pygsheets把事件记录到我的google电子表格中。这将被安排在一个web服务器上,特别是Heroku。在

我只使用这些线路来验证:

import pygsheets
gc = pygsheets.authorize()

在本地运行时,它工作得很好,因为我必须复制身份验证链接,然后粘贴代码。但如果是在Heroku上呢。在

我在Heroku上看到了这些日志:

^{pr2}$

我试图复制链接,它要求我登录。终结点是这个链接:

http://localhost:8080/?code=4/UgAXXXX6cdAt5Cnuj7yvTeoUgtfWyCvi8e2Rw-cxWiBVhACvom1qVgln0OfE1mOz3zENCXXXXvsOU4daXxI#

我不知道为什么是本地主机。在

我还研究了如何为Heroku验证Google云服务,并遇到了这个LINK。在

我创建了另一个服务帐户密钥。在

在我的命令行上写道:

$ heroku config:set GOOGLE_APPLICATION_CREDENTIALS=‘keyFile.json’

但这仍然不能解决问题。 我仍然得到这些日志:

2018-09-06T03:55:59.083071+00:00 app[web.1]: Your browser has been opened to visit:
2018-09-06T03:55:59.083072+00:00 app[web.1]: 
2018-09-06T03:55:59.083075+00:00 app[web.1]:     https://accounts.google.com/o/oauth2/auth?client_id=XXXXX-isqd84kjnfu7o6XXXX6p79crvco2ms.apps.googleusercontent.com&redirect_uri=http%3A%2F%2Flocalhost%3A8090%2F&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fspreadsheets+https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive&access_type=offline&response_type=code
2018-09-06T03:55:59.083076+00:00 app[web.1]: 
2018-09-06T03:55:59.083078+00:00 app[web.1]: If your browser is on a different machine then exit and re-run this
2018-09-06T03:55:59.083080+00:00 app[web.1]: application with the command-line parameter
2018-09-06T03:55:59.083082+00:00 app[web.1]: 
2018-09-06T03:55:59.083084+00:00 app[web.1]:   --noauth_local_webserver

顺便说一句,我的目录

- app.py
- client_secret.json
- keyfile.json
- Procfile
- requirements.txt

更多: 我还尝试使用:

gc = pygsheets.authorize(service_account_file='keyfile.json')

但在Heroku上的输出是一样的。在


Tags: browsercomclientjsonappheroku链接type
1条回答
网友
1楼 · 发布于 2024-06-16 11:46:24

我认为你的问题是你在本地和Heroku上使用了不同版本的pygsheets。在本地,您使用的是主版本。但是在服务器上使用的是1.1.4,它需要设置一个outh_nonlocal参数来启用服务器中的oauthorization。服务帐户的参数也从service_file更改。在

相关问题 更多 >