У меня есть небольшая программа, работающая на множестве Raspberry Pi, которую я хочу загрузить в лист Google. Эти вещи будут работать без головы и без пользовательского интерфейса. Данные не являются конфиденциальными. Я выбрал таблицы Google, потому что мне было бы легко работать с данными и экономить время. Однако у меня проблемы с авторизацией.
Если вы следуете этому краткому руководству, оно включает примеры аутентификации: https://developers.google.com/sheets/api/quickstart/python вы попадете в диалоговое окно аутентификации.
Тем не менее, все варианты, похоже, требуют взаимодействия с «головой» или пользовательским интерфейсом. Даже веб-сервер предполагает, что вы можете показать поток oauth пользователю в браузере. Я не могу этого сделать, это скрипт, работающий на пи без монитора.
Есть ли способ настроить настоящий, долгосрочный поток oauth для безголового сервера для аутентификации и записи в один из моих листов?
Это звучит как правильное направление ... есть идеи, какую «роль» я должен выбрать для этой учетной записи службы? ¯_(ツ)_/¯
Пробовал эту настройку без ролей, но получил «403 У вызывающего абонента нет разрешения» - не видно ролей, которые, кажется, сопоставляются с gsheets?
Спасибо за ответ. Прошу прощения за мое плохое знание английского. К сожалению, я не могу воспроизвести вашу ситуацию из нашего ответа. Например, в качестве теста, когда в «Сведения об учетной записи службы» задано только имя учетной записи службы, нажимается кнопка «Готово» и создается новый ключ в формате JSON, пример сценария работает. Прошу прощения за это. Но я хотел бы поддержать вас. Итак, можете ли вы предоставить подробный поток для репликации вашей проблемы и вашего текущего сценария? Таким образом, я хотел бы попытаться воспроизвести вашу проблему.
Этот пост успешно провел меня через ключевые шаги: https://denisluiz.medium.com/python-with-google-sheets-service-account-step-by-step-8f74c26ed28e
1/ Создайте учетную запись службы 2/ Поделитесь электронной таблицей с электронной почтой учетной записи службы (длинный сгенерированный адрес электронной почты, к которому вы можете получить доступ в файле учетных данных.json)
Как в вашей ситуации использовать учетную запись службы? При использовании сервисной учетной записи авторизация через браузер не требуется. Вот я и подумал, что это может подойти. Ссылка Например, пример скрипта на питоне с использованием сервисного аккаунта можно увидеть в этой теме. Если это было не то направление, которое вы ожидаете, я прошу прощения.