0

Я пытаюсь получить доступ к таблице google с node.js. Есть pretty good looking API, но он использует .pem-файл для аутентификации приложения. Второй способ заключается в использовании client_id, client_secret и refresh_token для OAuth2 или что-то по имени маркер доступа. Но то, что я получил от Google консоли разработчика является JSON отформатированный ключ:Доступ к электронной таблице google с ключом формата JSON

{ 
     type: 'service_account', 
     project_id: 'fu...ng-1234', 
     private_key_id: '2fd...0ba', 
     private_key: '-----BEGIN PRIVATE KEY ... END PRIVATE KEY-----\n', 
     client_email: '[email protected]', 
     client_id: '10...51', 
     auth_uri: 'https://accounts.google.com/o/oauth2/auth', 
     token_uri: 'https://accounts.google.com/o/oauth2/token', 
     auth_provider_x509_cert_url: 'https://www.googleapis.com/oauth2/v1/certs', 
     client_x509_cert_url: 'https://www.googleapis.com/robot/v1/metadata/x509/...%40appspot.gserviceaccount.com' 
} 

Я знаю, как экспортировать private_key в .pem файл, но это не выглядит как чистое решение для меня, потому что это означает дополнительный файл и потенциальную угрозу безопасности. А также используется oauth, и есть возможность использовать oauth2. Итак, есть ли способ использовать эти данные JSON для доступа к электронной таблице google с этим API с использованием oauth2?

Большое вам спасибо за любой ответ.

ответ

0

Да, вы можете access Google spreadsheet с API-интерфейсом Google Sheet с помощью Oauth 2.0. Когда вы запрашиваете API Google для негосударственного пользователя, данные должны быть авторизованы аутентифицированным пользователем.

Сведения о процессе авторизации для Oauth2.0 несколько меняются в зависимости от того, какое приложение вы пишете.

Следующий процесс применяется для всех приложений:

  • При создании приложения, зарегистрировать его с помощью Google. Затем Google предоставляет информацию, которая вам понадобится позже, например, идентификатор клиента и секрет клиента.
  • Когда вашему приложению требуется доступ к пользовательским данным, он запрашивает у Google определенную область доступа.
  • Google отображает диалоговое окно OAuth для пользователя, предлагая им разрешить ваше приложение запрашивать некоторые из их данных.
  • Если пользователь одобряет, то Google предоставляет вашему приложению кратковременный токен доступа.
  • Приложение запрашивает данные пользователя, прикрепляя токен доступа к запросу.
  • Если Google определяет, что ваш запрос и токен действительны, он возвращает запрошенные данные.

Вашему приложению требуется информация о сфере действия, а также информация, которую Google предоставляет во время регистрации приложения (например, идентификатор клиента и/или секрет клиента).

Версия v4 API Google Таблиц теперь доступна, пожалуйста, перенести приложение прямо сейчас. В этом руководстве по миграции показано, как обновлять приложения для использования v4: https://developers.google.com/sheets/guides/concepts