Данные, не извлеченные с Google Диска с помощью учетной записи службы (Ruby on Rails)

#ruby-on-rails #google-drive-api

#ruby-on-rails #google-drive-api

Вопрос:

Привет, я создал учетную запись службы Google с помощью электронной почты A@gmail.com . Я загрузил секретный файл json и поместил в рабочий каталог. Затем инициализируйте и авторизуйте api с помощью команд этого типа.

 scopes = ["https://www.googleapis.com/auth/drive"]
service = Google::Apis::DriveV3::DriveService.new
service.client_options.application_name = APPLICATION_NAME
service.authorization = Google::Auth.get_application_default(scopes)
  

На данном этапе это работает с

https://www.googleapis.com/oauth2/v3/token >, @client_id=nil, @client_secret=nil, @code=nil, @expires_at=nil, @expires_in=nil, @issued_at=nil, @issuator =»brbr@appspot.gserviceaccount.com «, @password=nil, @principal =nil, @redirect_uri=nil, @scope=[«https://www.googleapis.com/auth/drive «], @state=nil, @username=nil, @expiry=60, @audience=»https://www.googleapis.com/oauth2/v3/token «, @signing_key=#, @extension_parameters={}, @additional_parameters ={}>

Затем я выполнил приведенную ниже команду, как объясняется в документе Google api.

 response = service.list_files(page_size: 10,
                              fields: 'nextPageToken, files(id, name)')
puts 'Files:'
puts 'No files found' if response.files.empty?
response.files.each do |file|
  puts "#{file.name} (#{file.id})"
end
  

Единственный файл, который извлекается, — это файл «Начало работы», даже если я вызвал с помощью page_size 10.

Внутри Google Диска, учетная запись электронной почты которого A@gmail.com Я создал пару файлов (документ Google, таблица распространения Google и т.д.), Но ни один из них не извлекается с помощью приведенной выше команды.

Это из-за учетной записи службы?

Например, электронная почта моей учетной записи службы (client_email) является brbrbrbr…@appspot.gserviceaccount.com , что, по-видимому, отличается от A@gmail.com .

Пожалуйста, дайте мне любую идею по этому вопросу!

Лучшие

Комментарии:

1.Вы Делегируйте полномочия на уровне домена своей учетной записи службы?

2. Привет @noogui!, я пытался делегировать доступ по всему домену к этой учетной записи службы на странице консоли администратора. Как это объясняется, я ввел идентификатор клиента моей учетной записи службы под именем клиента. Идентификатор клиента моей учетной записи службы — это число (21 цифра). И я также вставил область видимости. Но появляется сообщение об ошибке: это имя клиента еще не зарегистрировано в Google. Не могли бы вы сказать мне, что может быть причиной этого? (:

3. Привет, @noogui! Я только что предоставил «g suit domain wide access authority» этой учетной записи под моим A@gmail.com «. Тем не менее, мои файлы, которые хранятся на Google диске из A@gmail.com не извлекаются с сервера. Не могли бы вы дать мне какой-нибудь намек на это? (: