Межсерверная аутентификация для API листов Google

У меня есть небольшая программа, работающая на множестве Raspberry Pi, которую я хочу загрузить в лист Google. Эти вещи будут работать без головы и без пользовательского интерфейса. Данные не являются конфиденциальными. Я выбрал таблицы Google, потому что мне было бы легко работать с данными и экономить время. Однако у меня проблемы с авторизацией.

Если вы следуете этому краткому руководству, оно включает примеры аутентификации: https://developers.google.com/sheets/api/quickstart/python вы попадете в диалоговое окно аутентификации.

Тем не менее, все варианты, похоже, требуют взаимодействия с «головой» или пользовательским интерфейсом. Даже веб-сервер предполагает, что вы можете показать поток oauth пользователю в браузере. Я не могу этого сделать, это скрипт, работающий на пи без монитора.

Есть ли способ настроить настоящий, долгосрочный поток oauth для безголового сервера для аутентификации и записи в один из моих листов?

Как в вашей ситуации использовать учетную запись службы? При использовании сервисной учетной записи авторизация через браузер не требуется. Вот я и подумал, что это может подойти. Ссылка Например, пример скрипта на питоне с использованием сервисного аккаунта можно увидеть в этой теме. Если это было не то направление, которое вы ожидаете, я прошу прощения.

Tanaike 16.12.2020 04:04

Это звучит как правильное направление ... есть идеи, какую «роль» я должен выбрать для этой учетной записи службы? ¯_(ツ)_/¯

ConfusedNoob 16.12.2020 05:11

Пробовал эту настройку без ролей, но получил «403 У вызывающего абонента нет разрешения» - не видно ролей, которые, кажется, сопоставляются с gsheets?

ConfusedNoob 16.12.2020 05:36

Спасибо за ответ. Прошу прощения за мое плохое знание английского. К сожалению, я не могу воспроизвести вашу ситуацию из нашего ответа. Например, в качестве теста, когда в «Сведения об учетной записи службы» задано только имя учетной записи службы, нажимается кнопка «Готово» и создается новый ключ в формате JSON, пример сценария работает. Прошу прощения за это. Но я хотел бы поддержать вас. Итак, можете ли вы предоставить подробный поток для репликации вашей проблемы и вашего текущего сценария? Таким образом, я хотел бы попытаться воспроизвести вашу проблему.

Tanaike 17.12.2020 01:55
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
4
623
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Этот пост успешно провел меня через ключевые шаги: https://denisluiz.medium.com/python-with-google-sheets-service-account-step-by-step-8f74c26ed28e

1/ Создайте учетную запись службы 2/ Поделитесь электронной таблицей с электронной почтой учетной записи службы (длинный сгенерированный адрес электронной почты, к которому вы можете получить доступ в файле учетных данных.json)

Другие вопросы по теме