2017-02-10 10 views
0

Я пытаюсь авторизовать свое приложение с API Google для Google Calendar, используя учетную запись службы. Теперь я столкнулся с проблемой, когда по какой-то причине учетные данные не загружаются.Авторизация учетной записи службы API Google Calendar не работает

Это мой код авторизации:

scopes = 'https://www.googleapis.com/auth/calendar' 
authorization = Google::Auth.get_application_default(scopes) 
cal = Google::Apis::CalendarV3::CalendarService.new 
cal.authorization = authorization 
cal.authorization.fetch_access_token! 

Вот сообщение об ошибке, что я получаю: enter image description here

У меня есть файл client_secrets.json в моей ENV переменных, как описан в документации компании Google , У меня также есть каждый элемент из этого файла как переменная ENV, как указано в исходном коде google auth.

Может ли кто-нибудь дать представление о получении разрешения?

ответ

0

В Using OAuth 2.0 for Server to Server Applications настоятельно рекомендуется использовать библиотеки, такие как клиентские библиотеки API Google.

Как обсуждалось в Creating a service account,

Если приложение не работает на Google App Engine или Google Compute Engine, вы должны получить эти учетные данные в Google API Console. Для создания учетных данных обслуживания учетной записи или просматривать открытые учетные данные, которые вы уже сформировавшиеся, сделайте следующее:

  1. Откройте Service accounts page. При появлении запроса выберите проект.
  2. Нажмите Создать учетную запись.
  3. В окне Создайте учетную запись службы, введите имя для учетной записи службы и выберите Отдельте новый закрытый ключ. Если вы хотите добавить grant G Suite domain-wide authority в учетную запись службы, выберите Включить G Suite Домен по всей домене. Затем нажмите Создать.

Ваша новая пара открытого и закрытого ключей генерируется и загружается на ваш компьютер; он служит единственной копией этого ключа. Вы несете ответственность за их надежное хранение.

Кроме того, я также предлагаю вам посетить Google Application Default Credentials для получения более подробной информации об учетных данных по умолчанию.

Для Ruby учетные данные по умолчанию предоставлены клиентской библиотекой API Google для Ruby версии 0.1.0 и новее. Призывая учетные данные приложения по умолчанию в коде приложения, импортировать googleauth камень, а затем передать области действия, необходимые для доступа к Google::Auth.get_application_default:

require 'googleauth' 
scopes = ['https://www.googleapis.com/auth/cloud-platform', 'https://www.googleapis.com/auth/devstorage.read_only'] 
authorization = Google::Auth.get_application_default(scopes) 

Затем, используя учетные данные для доступа к услугам API следующим образом:

require "google/apis/storage_v1" 
storage = Google::Apis::StorageV1::StorageService.new 
storage.authorization = authorization 

Надеюсь, что это поможет!

+0

Извините, но этот ответ не помогает, поскольку я уже сделал все это, и это не решает проблему. – NeyLive

Смежные вопросы