在未出现404错误的情况下无法更改Google Sheets API中的SCOPES:未找到请求的实体

时间:2019-02-22 09:31:51

标签: python google-sheets-api

每当我尝试运行该代码时,都会出现此错误:请求https://sheets.googleapis.com/v4/spreadsheets/1KpJw640oNNwVfEasGoSffrfoyC7i1ryHakdWZmr-AX4/values:batchUpdate?alt=json返回“找不到请求的实体。”时出现HttpError 404。 我正在尝试借助此API更新Google Sheet文件,但我管理的唯一作用域是“只读”。我尝试删除token.pickle文件:被识别,因此该请求不需要身份验证凭据。但是我不知道为什么我仍然会出错。因此,基本上我所能做的就是从工作表中提取数据,但不覆盖单元格。

 from __future__ import print_function
 from pprint import pprint
 from googleapiclient import discovery
 import pickle
 import os.path
 from googleapiclient.discovery import build
 from google_auth_oauthlib.flow import InstalledAppFlow
 from google.auth.transport.requests import Request

 SCOPES = ['https:// www.googleapis.com/auth/spreadsheets'] #what I have changed from the Python Quickstart code from the Google Sheets API website

 creds = None

 if os.path.exists('token.pickle'):
    with open('token.pickle', 'rb') as token:
        creds = pickle.load(token)
 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(
            'credentials.json', SCOPES)
        creds = flow.run_local_server()
    with open('token.pickle', 'wb') as token:
        pickle.dump(creds, token)

 service = discovery.build('sheets', 'v4', credentials=creds)

 spreadsheet_id = '1KpJw640oNNwVfEasGoSffrfoyC7i1ryHakdWZmr-AX4' #this id is correct and still I get an error

 batch_update_values_request_body = {
     'value_input_option': 'USER_ENTERED',

     'data': [
     {
       "range": "Control Panel!A:B",
       "majorDimension": "ROWS",
       "values": [[1,2]]
     }
    ], 
   }

 request = service.spreadsheets().values().batchUpdate(spreadsheetId=spreadsheet_id, 
 body=batch_update_values_request_body)
 response = request.execute()

 pprint(response)

0 个答案:

没有答案