Ответ 1
Убедитесь, что вы указали адрес электронной почты службы (что-то вроде [email protected]m) для чтения/записи из вашего представления GA.
Администратоp > Вид > Управление пользователями > "Добавить разрешения для:"
Я пишу приложение 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]:
Учитывая, что учетная запись службы может иметь доступ, по крайней мере, к одному API (YouTube Analytics), а связанная с ней учетная запись ([email protected]) может обращаться к веб-интерфейсу Google Analytics, похоже, что что-то не так с учетной записью службы, обращающейся к Google Analytics API в частности.
Любые идеи?
Похожие темы:
Убедитесь, что вы указали адрес электронной почты службы (что-то вроде [email protected]m) для чтения/записи из вашего представления GA.
Администратоp > Вид > Управление пользователями > "Добавить разрешения для:"
Выберите правильный идентификатор!
В моем случае я использовал правильные учетные данные (идентификатор учетной записи, секрет учетной записи → 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 плохо документирован в целом, и пользовательский интерфейс был неясным. Но может быть, это только я.
Если вы все еще видите это сообщение после того, как вы добавили электронное письмо разработчика к аналитическому пользователю.
Вам может потребоваться добавить область к объекту, прежде чем новый Google_Service_Analytics ($ client);
$client- > setScopes ( " https://www.googleapis.com/auth/plus.login" );
Я потратил целый день, пытаясь решить это!
Мне также пришлось пойти в консоль разработчика и включить API, чтобы он работал. Перейдите в консоль разработчика и выберите свой проект и включите API (ы), которые хотите использовать.
Даже после добавления электронной почты на уровень учетной записи в аналитике у меня все еще была такая же проблема с разрешением, но следующее предложение помогло, но не решило:
$client- > setScopes ( " https://www.googleapis.com/auth/plus.login" );
Это не сработало для меня, но это произошло:
$client- > setScopes ( " http://www.googleapis.com/auth/analytics" );
Убедитесь, что вы ввели правильный table_id
(ie. GetProfiles(oauth_token)
tableid_input = "ga:72848696")
Если у кого-то больше просмотров, он должен использовать идентификатор вида.