Ресурс Ruby Google API не найден: домен

#ruby #google-api

#ruby #google-api

Вопрос:

Мне удалось исправить исходную проблему ниже, удалив .readonly из URL.

Теперь мне выдается эта ошибка:

 {"error"=>{"errors"=>[{"domain"=>"global", "reason"=>"notFound", "message"=>"Resource Not Found: domain"}], "code"=>404, "message"=>"Resource Not Found: domain"}}
  

Опять же, я просмотрел эту ошибку онлайн, но все ссылки, похоже, ведут на страницу ошибок в Google, и ничего, что помогло бы определить исправление этой ошибки.

Исходная проблема

Я пытаюсь использовать приведенный ниже скрипт для доступа к API каталогов Google с помощью Ruby, но при попытке выполнить скрипт я получаю сообщение об ошибке.

Скрипт

 #!/usr/bin/env ruby
require 'rubygems'
require 'json'
require 'google/api_client'
require 'active_support/core_ext/hash'

# The value of client_email from the JSON file goes here
SERVICE_ACCOUNT_EMAIL = 'xxxxxxxxx-bk7gbhr8k2dfvtidm0cc0msnipo34c8p@developer.gserviceaccount.com'

# This should be an Admin
ACT_ON_BEHALF_EMAIL = 'xxxxxx@gmail.com'

# File path to the certificate
SERVICE_ACCOUNT_PKCS12_FILE_PATH = '/home/xxxx/3ce8a60d43a8fa5cb747441fdfd90c3b91d6f45b-privatekey.p12'

key = Google::APIClient::PKCS12.load_key(SERVICE_ACCOUNT_PKCS12_FILE_PATH, 'notasecret')

asserter = Google::APIClient::JWTAsserter.new(SERVICE_ACCOUNT_EMAIL, 'https://www.googleapis.com/auth/admin.directory.user.readonly', key)

client = Google::APIClient.new(:application_name => 'GAAccountAudit')

client.authorization = asserter.authorize(ACT_ON_BEHALF_EMAIL)

api = client.discovered_api('admin', 'directory_v1')

result = client.execute(
    :api_method => api.users.list,
    :parameters => {
        'domain' => 'http://www.xxxxxx.com',
        'orderBy' => 'givenName',
        'maxResults' => 500,
        'fields' => 'users(id,etag,primaryEmail,name,suspended)',
    }
)

users = JSON.parse(result.body, {:symbolize_names => true})[:users]

users.each do |u|
    puts "#{u[:name][:fullName]} <#{u[:primaryEmail]}>"
end
  

Ошибка

 {"error" : "unauthorized_client","error_description" : "Unauthorized client or scope in request."}
  

Я прочитал об этой ошибке, но не смог найти окончательного ответа на этот вопрос. Может кто-нибудь посоветовать, как мне устранить эту ошибку?

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

1. предоставляли ли вы учетной записи службы доступ к учетной записи Google Apps?

2. @DaImTo Не могли бы вы посоветовать, как я это сделаю? У него есть разрешения «Можно редактировать» в настройках разрешений проекта.