Google Sheets API 拒绝连接,因为已达到每日配额

问题描述 投票:0回答:2

gspread.exceptions.APIError:{'code':429,'message':“超出配额组'ReadGroup'的配额并限制消费者'sheets.googleapis.com'服务'每100秒每个用户的读取请求' project_number:changedthis'.", 'status': 'RESOURCE_EXHAUSTED', 'details': [{'@type': 'type.googleapis.com/google.rpc.Help', 'links': [{'description': 'Google 开发者控制台 API 密钥', 'url': 'https://console.developers.google.com/project/changedthis/apiui/credential'}]}]}

我的代码每 60 秒发送一次数据,这只填充 3 个单元格。现在我在程序开始时收到错误。我要等几天还是永久封锁?

google-drive-api google-sheets-api
2个回答
0
投票

这与使用限制有关

根据Sheets Documentation

There is no daily usage limit
但有限
requests per 100 seconds
。如果您是计费帐户的所有者,则可以增加此配额。否则
500 requests per 100 seconds per project
100 requests per 100 seconds per user
就是极限。

作为解决方法,请使用不同的服务帐户以达到 500 个请求/100 秒。

编辑

查看您的代码,这些是当前正在起作用的更改(查看范围,其中一些在本例中是不必要的,尽管我没有修改它们):

import gspread
import time
import datetime
from google.oauth2 import service_account

SCOPES = ["https://spreadsheets.google.com/feeds", 'https://www.googleapis.com/auth/spreadsheets',
         "https://www.googleapis.com/auth/drive.file", "https://www.googleapis.com/auth/drive"]
SERVICE_ACCOUNT_FILE = 'creds.json'
 
#creds = ServiceAccountCredentials.from_json_keyfile_name("creds.json", scope)
credentials = service_account.Credentials.from_service_account_file(
        SERVICE_ACCOUNT_FILE, scopes=SCOPES)

creds = credentials.with_subject('[email protected]')
 
client = gspread.authorize(creds)
 
sheet = client.open_by_key("ID").sheet1  # Open the spreadsheet
 
i = 1
while True:
  cell = sheet.cell(i, 1).value
  i += 1
  if len(cell) == 0:  # of een manier om te kijken of de cell leeg is
      print("Empty row has been found at row", (i-1))
      break
    # ofzo, als er geen begrenzing is en geen lege cell dan blijft deze lus maar doorgaan     totdat sheet.cell(i, 1).value fout gaat denk ik
  if i > 1000:
      print("Did not find any empty rows")
      break
    
while True:
  x = str(datetime.datetime.now())
  sheet.update_cell(i, 1, x)  # Update one cell
  time.sleep(60)

为了使这项工作有效,您应该激活域范围的权限

参考文献

Sheets API 使用限制

解决 429 错误:请求过多


0
投票

我在写入 Google 电子表格时遇到了同样的问题,我将代码中的输出数据记录到

local csv
文件中,然后将其导入到 google 表格中

© www.soinside.com 2019 - 2024. All rights reserved.