Подтвердить что ты не робот

API Google Analytics: "У пользователя недостаточно прав для этой учетной записи".

Я пишу приложение Ruby, которое обращается к API Google Analytics, чтобы вытащить информацию об экспериментах.

Приложение подключается и аутентифицируется с помощью учетной записи Google через следующую функцию:

def connect
  ...
  @@client = Google::APIClient.new(:application_name => 'My Service App', 
                                    :application_version => '1.0.0')
  key_file = Rails.root.join('config', 'privatekey.p12').to_s
  key_secret = 'somesecret'
  key = Google::APIClient::PKCS12.load_key(key_file, key_secret)
  asserter = Google::APIClient::JWTAsserter.new(
    SECRETS[:google_service_account_email],
    ['https://www.googleapis.com/auth/yt-analytics.readonly',
     'https://www.googleapis.com/auth/analytics.readonly'
    ],
    key
  )
  @@client.authorization = asserter.authorize()
  ...
end

... который аутентифицирует и обнаруживает оба API без проблем.

Использование клиента против API YouTube Analytics работает без проблем. Используя ту же самую точную учетную запись для доступа к API Google Analytics через...

response = @@client.execute({
  # 'analytics is the API object retrieved via discover_api()
  :api_method => analytics.management.experiments.list, 
  :parameters => {
    'accountId' => 'AAAAAAAA',
    'profileId' => 'PPPPPPPP',
    'webPropertyId' => 'UA-WWWWWWWW-#'
  }
})

Результаты в ошибке 403:

{"domain":"global","reason":"insufficientPermissions","message":"User does not have sufficient permissions for this account."}

Что касается авторизации, я дважды проверил учетную запись [email protected]:

  • Имеет полный доступ к веб-интерфейсу Google Analytics.. Я вошел в систему, используя учетную запись [email protected], и смог просмотреть те же эксперименты, которые я попытался перечислить.
  • Включил API Google Analytics.. В консоли API я подтвердил в разделе "Службы", что элемент API Analytics переключается на "ВКЛ". (Так же, как YouTube Analytics.)
  • Я использую соответствующие значения AccountID, ProfileID и WebPropertyID. Скопировано непосредственно из веб-интерфейса Google Analytics.

Учитывая, что учетная запись службы может иметь доступ, по крайней мере, к одному API (YouTube Analytics), а связанная с ней учетная запись ([email protected]) может обращаться к веб-интерфейсу Google Analytics, похоже, что что-то не так с учетной записью службы, обращающейся к Google Analytics API в частности.

Любые идеи?

Похожие темы:

4b9b3361

Ответ 1

Убедитесь, что вы указали адрес электронной почты службы (что-то вроде [email protected]m) для чтения/записи из вашего представления GA.

Администратоp > Вид > Управление пользователями > "Добавить разрешения для:"

Ответ 2

Выберите правильный идентификатор!

В моем случае я использовал правильные учетные данные (идентификатор учетной записи, секрет учетной записи → authorization_code → access_token) И у меня были права на право электронной почты, но я использовал идентификатор учетной записи в настройках Admin > /strong > и просто добавление ga: в начало.

Идентификатор, который вам действительно нужен, - это идентификатор таблицы! (или тот, который работал у меня, по крайней мере, поскольку большинство людей здесь упоминает идентификатор учетной записи, что не работает для меня.), Вы можете найти это здесь: https://ga-dev-tools.appspot.com/account-explorer/

введите описание изображения здесь

И затем вы можете запросить как

service.get_ga_data(TABLE_ID,'2017-03-25','2017-03-25','ga:users,ga:pageviews')

Я обнаружил, что этот API плохо документирован в целом, и пользовательский интерфейс был неясным. Но может быть, это только я.

Ответ 3

Если вы все еще видите это сообщение после того, как вы добавили электронное письмо разработчика к аналитическому пользователю.

Вам может потребоваться добавить область к объекту, прежде чем новый Google_Service_Analytics ($ client);

$client- > setScopes ( " https://www.googleapis.com/auth/plus.login" );

Я потратил целый день, пытаясь решить это!

Ответ 4

Мне также пришлось пойти в консоль разработчика и включить API, чтобы он работал. Перейдите в консоль разработчика и выберите свой проект и включите API (ы), которые хотите использовать.

Ответ 5

Даже после добавления электронной почты на уровень учетной записи в аналитике у меня все еще была такая же проблема с разрешением, но следующее предложение помогло, но не решило:

$client- > setScopes ( " https://www.googleapis.com/auth/plus.login" );

Это не сработало для меня, но это произошло:

$client- > setScopes ( " http://www.googleapis.com/auth/analytics" );

Ответ 6

Убедитесь, что вы ввели правильный table_id

(ie. GetProfiles(oauth_token)
tableid_input = "ga:72848696")

Ответ 7

Если у кого-то больше просмотров, он должен использовать идентификатор вида.