Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何在不提示授权脚本的情况下设置对Google Sheets的身份验证?_Python_Google Sheets_Authorization_Google Sheets Api_Google Api Python Client - Fatal编程技术网

Python 如何在不提示授权脚本的情况下设置对Google Sheets的身份验证?

Python 如何在不提示授权脚本的情况下设置对Google Sheets的身份验证?,python,google-sheets,authorization,google-sheets-api,google-api-python-client,Python,Google Sheets,Authorization,Google Sheets Api,Google Api Python Client,我正试图使用Python通过Google Sheets的API查询它们,但在设置时有点困惑。我用他们的身份验证了自己,下载了一个OAuth 2.0客户端id JSON文件,并批准了对我的应用程序的访问,这是我的脚本,对吗 但是,每次我运行脚本时,都会不断收到授权应用程序的提示。我执行脚本,它会自动在我的浏览器中打开一个类似谷歌登录的页面,询问我是否希望Quickstart访问你的谷歌帐户 我直接从该页面复制了认证部分,但对于如何在其API和服务页面中进行更改或执行操作以使其无缝运行感到困惑 SC

我正试图使用Python通过Google Sheets的API查询它们,但在设置时有点困惑。我用他们的身份验证了自己,下载了一个OAuth 2.0客户端id JSON文件,并批准了对我的应用程序的访问,这是我的脚本,对吗

但是,每次我运行脚本时,都会不断收到授权应用程序的提示。我执行脚本,它会自动在我的浏览器中打开一个类似谷歌登录的页面,询问我是否希望Quickstart访问你的谷歌帐户

我直接从该页面复制了认证部分,但对于如何在其API和服务页面中进行更改或执行操作以使其无缝运行感到困惑

SCOPES = ['https://www.googleapis.com/auth/spreadsheets']

if os.path.exists("token.pickle"):
    with open("token.pickle", 'rb') as token:
        creds = pickle.load(token)
    # If there are no (valid) credentials available, let the user log in.
if not creds or not creds.valid:
    if creds and creds.expired and creds.refresh_token:
        creds.refresh(Request())
    else:
        flow = InstalledAppFlow.from_client_secrets_file("googlesheetscreds.json",
                                                         SCOPES)
        creds = flow.run_local_server()
    # Save the credentials for the next run
    with open('token.pickle', 'wb') as token:
        pickle.dump(creds, token)

我需要更改范围吗

你要求什么样的证书?如果他们不授予脱机访问权限,那么您将无法在不重新编程的情况下执行。(也就是说,你有没有检查过去腌渍的
creds
,看它们是否可以提神?)啊,我明白了。如果您谈论的是API和服务页面上列出的凭据类型,那么它仅列为
Other
type。如果我试图将数据放入电子表格,我是在访问应用程序数据还是用户数据?嗯,那么第一组凭证是OAuth 2.0客户端ID,我通过向导创建了另一组凭证,该凭证最终是服务帐户密钥,但不起作用。我现在遇到了这个错误:
ValueError:客户端机密必须用于web或已安装的应用程序。
@simplycoding当
googlesheetscreds.json
更改为服务帐户文件时,您的脚本需要修改才能使用服务帐户,如
credentials=Service\u Account.credentials.from\u Service\u Account\u file(“#####服务帐户的JSON文件######,作用域=作用域)
Service=build(serviceName='sheets',version='v4',credentials=credentials)
。我作为评论发布,因为我不确定您是否要使用服务帐户。如果我误解了您的情况,我道歉。您可以请求脱机访问并使用刷新令牌保存凭据,或者使用服务帐户模拟用户。查看我创建的库,每次都使用它在谷歌上进行身份验证勒阿皮斯。欢迎有任何想法。