Доступ к Google Sheets Api с помощью Python - PullRequest
3 голосов
/ 10 мая 2019

В настоящее время я пытаюсь обновлять листы Google с помощью Python, и у меня возникают некоторые проблемы с разрешениями.

Я следовал инструкциям из этого руководства Twilio: https://www.twilio.com/blog/2017/02/an-easy-way-to-read-and-write-to-a-google-spreadsheet-in-python.html

Я делаю все это в Jupyter, и я сохранил файл JSON в правильном каталоге кода. У меня не было проблем с определением объема, кредитов и клиентов.

import gspread
from oauth2client.service_account import ServiceAccountCredentials

scope = ['https://spreadsheets.google.com/feeds']
creds = ServiceAccountCredentials.from_json_keyfile_name('client_id.json', scope)
client = gspread.authorize(creds)

sheet = client.open("MixIQ Tracker").sheet1

Я выполнил все шаги, чтобы связать их, но я получаю эту ошибку API с последней строкой.

APIError: {
"error": {
  "errors": [{
      "domain": "global",
      "reason": "insufficientPermissions",
      "message": "Insufficient Permission: Request had insufficient authentication scopes."
    }],
  "code": 403,
  "message": "Insufficient Permission: Request had insufficient authentication scopes."
 }
}

Я не совсем уверен, как решить эту проблему. Любое направление будет с благодарностью!

Ответы [ 3 ]

2 голосов
/ 13 мая 2019

Я считаю, что конечная точка API Google Drive должна быть включена в вашу область.Я писал данные из API Mailchimp в Google Sheet.

Проверьте это: https://www.youtube.com/watch?v=7I2s81TsCnc> Это было полезно для меня.

scope = ['https://spreadsheets.google.com/feeds',' https://www.googleapis.com/auth/drive']

0 голосов
/ 22 июля 2019

Используйте это как область:

scope = ['https://spreadsheets.google.com/feeds', 'https://www.googleapis.com/auth/drive']

Перед вызовом "ServiceAccountCredentials"

Вам потребуется включить API Google Диска в "console.cloud.google", а также API листов.

0 голосов
/ 13 мая 2019

Если вы посмотрите на документацию по областям API Google , то на URL-адрес области действия, на который вы ссылаетесь, нигде нет ссылок. Это может быть проблемой. Попробуйте изменить URL области действия на https://www.googleapis.com/auth/spreadsheets.

Кроме того, убедитесь, что API-интерфейс электронной таблицы правильно включен в вашем проекте в консоли разработчика Google.

В качестве альтернативы, вы можете попробовать библиотеку Sheetfu (я автор), которая обрабатывает области видимости для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...