У меня есть пользовательская панель мониторинга в проекте Ruby on Rails с данными, собранными в Google Analytics. I пользователь Google Analytics Отчетность API V4 и учетная запись службы для аутентификации.Клиент неавторизован для получения токенов доступа с использованием этого метода
Мой код хорошо работает, если я не выдал себя за пользователя authorization.sub = '[email protected]'
, и если я это сделаю, я получаю ошибку unauthorized_client
, но не все время. Иногда это работает, а иногда и нет.
Это мой код:
scope = [Google::Apis::AnalyticsreportingV4::AUTH_ANALYTICS_READONLY]
view_id = 'xxxxxx'
ENV['GOOGLE_APPLICATION_CREDENTIALS'] = "#{Rails.root}/private/google_analytics_key.json"
authorization = Google::Auth::get_application_default(scope)
authorization.sub = '[email protected]'
analytics = Google::Apis::AnalyticsreportingV4::AnalyticsReportingService.new
analytics.authorization = authorization
...
request = Google::Apis::AnalyticsreportingV4::GetReportsRequest.new(report_requests: report_requests)
@result = analytics.batch_get_reports(request)
Rails сервер вывода журнала:
Sending HTTP post https://analyticsreporting.googleapis.com/v4/reports:batchGet?
Caught error Authorization failed. Server message:
{
"error": "unauthorized_client",
"error_description": "Client is unauthorized to retrieve access tokens using this method."
}
Error - #<Signet::AuthorizationError: Authorization failed. Server message:
{
"error": "unauthorized_client",
"error_description": "Client is unauthorized to retrieve access tokens using this method."
}>
Completed 500 Internal Server Error in 149ms (ActiveRecord: 0.4ms)
Signet::AuthorizationError (Authorization failed. Server message:
{
"error": "unauthorized_client",
"error_description": "Client is unauthorized to retrieve access tokens using this method."
}):
authorization.sub не поддерживается для доступа к API Google Analytics, поскольку Google Analytics не является приложением GSuite (приложения для работы). – Matt
Такая же проблема здесь: http://stackoverflow.com/questions/41903578/google-api-service-account-authorization-error – MarcGuay