Использование одинаковых учетных данных для разных таблиц - PullRequest
0 голосов
/ 06 октября 2018

Попытка получить доступ к двум различным таблицам путем изменения только SPREADSHEET_ID.Одна электронная таблица работает нормально, в то время как другая возвращает ошибку в моей консоли PyCharm:

Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2017.1.3\helpers\pycharm\_jb_unittest_runner.py", line 35, in <module>
    main(argv=args, module=None, testRunner=unittestpy.TeamcityTestRunner, buffer=not JB_DISABLE_BUFFERING)
  File "C:\Users\gedas\AppData\Local\Programs\Python\Python36-32\lib\unittest\main.py", line 93, in __init__
    self.parseArgs(argv)
  File "C:\Users\gedas\AppData\Local\Programs\Python\Python36-32\lib\unittest\main.py", line 140, in parseArgs
    self.createTests()
  File "C:\Users\gedas\AppData\Local\Programs\Python\Python36-32\lib\unittest\main.py", line 147, in createTests
    self.module)
  File "C:\Users\gedas\AppData\Local\Programs\Python\Python36-32\lib\unittest\loader.py", line 219, in loadTestsFromNames
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "C:\Users\gedas\AppData\Local\Programs\Python\Python36-32\lib\unittest\loader.py", line 219, in <listcomp>
    suites = [self.loadTestsFromName(name, module) for name in names]
  File "C:\Users\gedas\AppData\Local\Programs\Python\Python36-32\lib\unittest\loader.py", line 153, in loadTestsFromName
    module = __import__(module_name)
  File "D:\pyth_nonsens\workspace_python\PyhonTutorial\google\test_spread.py", line 164, in <module>
    ss.get()
  File "D:\pyth_nonsens\workspace_python\PyhonTutorial\google\test_spread.py", line 145, in get
    result = service.spreadsheets().values().get(  spreadsheetId=SPREADSHEET_ID, range=RANGE_NAME).execute()
  File "C:\Users\gedas\AppData\Local\Programs\Python\Python36-32\lib\site-packages\oauth2client\_helpers.py", line 133, in positional_wrapper
    return wrapped(*args, **kwargs)
  File "C:\Users\gedas\AppData\Local\Programs\Python\Python36-32\lib\site-packages\googleapiclient\http.py", line 840, in execute
    raise HttpError(resp, content, uri=self.uri)
googleapiclient.errors.HttpError: <HttpError 404 when requesting https://sheets.googleapis.com/v4/spreadsheets/IAD2okAWZD7anbt5L4ybgD2dxHBGmsY6IkNIWHBQkBM/values/A1%3AE?alt=json returned "Requested entity was not found.">

Я открыл ссылку из журнала в проводнике и получил ошибку:

{
  "error": {
    "code": 403,
    "message": "The request is missing a valid API key.",
    "status": "PERMISSION_DENIED"
  }
}
  • Почему Python сообщает страницунедоступен?
  • Какая система ключей API запрашивает?
  • В чем разница между этими таблицами?Открывается пример Google, второй создается мной.

  • Почему я могу открыть обе таблицы из программы на C #, которую я сделал, с одним и тем же файлом credentials.json и с тем же аккаунтом Google?

Мой код Python

class SprSht:
    def get(self):
        print("starting get")
        store = file.Storage('token.json')
        try:
            creds = store.get()
        except Exception as e:
            print(traceback.format_exc())

        if not creds or creds.invalid:
            flow = client.flow_from_clientsecrets('credentials.json', SCOPES)
            creds = tools.run_flow(flow, store)
        service = build('sheets', 'v4', http=creds.authorize(Http()))
        # Call the Sheets API
        SPREADSHEET_ID = 'IAD2okAWZD7anbt5L4ybgD2dxHBGmsY6IkNIWHBQkBM'  # my
        #SPREADSHEET_ID = '1BxiMVs0XRA5nFMdKvBdBZjgmUUqptlbs74OgvE2upms'

        RANGE_NAME = 'A1:E'
        result = service.spreadsheets().values().get(  spreadsheetId=SPREADSHEET_ID, range=RANGE_NAME).execute()
        values = result.get('values', [])
        if not values:
            print('No data found.')
        else:
            print('Name, Major:')
            for row in values:
                # Print columns A and E, which correspond to indices 0 and 4.
                print('%s, %s' % (row[0], row[4]))

ss = SprSht()
ss.get()
...