Помилка 403 API Google Analytics: "У користувача немає жодного облікового запису Google Analytics"


147

Я створюю сценарій на основі покрокового керівництва Google Analytics на цій сторінці:

https://developers.google.com/analytics/resources/tutorials/hello-analytics-api

Авторизація проводиться без проблем, поки вона не намагається отримати доступ до даних. Код повернення - 403, а повідомлення про помилку:

Користувач не має жодного облікового запису Google Analytics

Це повідомлення не має сенсу: у моєму обліковому записі є дані аналітики Google, відстеження декількох веб-сайтів, і я можу без проблем отримати доступ до нього з веб-браузера. Я дозволив API Analytics через консоль API Google, і доступ до API дає мені правильні дані.

Відповіді:


302

У мене теж була ця проблема. Я виправив це, додавши адресу електронної пошти для свого облікового запису служби до профілю Google Analytics, до якого я хотів отримати доступ.

Я отримав адресу електронної пошти (щось на зразок xxxxxx@developer.gserviceaccount.com) для облікового запису послуги, переглянувши вкладку «Доступ до API» на консолі API Google.

Потім я дотримувався вказівок Google щодо додавання електронної адреси до профілю Analytics . Зараз все працює як очікувалося.

Удачі!


8
Це найкраща відповідь, я спробував це, і це працює як шарм !! Велике спасибі @Sebastian!
mongotop

1
якщо у вашому обліковому записі є більше одного профілю, і ви хочете отримати доступ до їх даних за допомогою API GA, якщо вам слід продовжувати додавати xxxxx@developer.gserviceaccount.com до профілю Analytics, або є більш ефективний спосіб без залучення ручного способу. Дякую!
mongotop

2
@mongotop ласкаво просимо! На жаль, я не знаю більш ефективного способу зробити це - повідомте нас у коментарях, якщо ви знайдете його.
SM

1
Якщо ви додаєте користувача на рівні ресурсу, переконайтеся, що він додав його до належного перегляду, оскільки інтерфейс Analytics інколи вводить в оману
tacone

1
Ти легенда, я цілий день пробував це налаштувати.
dspacejs

80

Просто додайте вам вказану електронну пошту (формат 71667655853644-o653rrdkq5hthsgo0otbpojoo@developer.gserviceaccount.com)

для менеджерів користувачів:

Користувач не має жодного облікового запису Google Analytics

Бажайте, щоб це вам допомогло


2
На жаль помилка не пішла. Повідомлення: GAPI: Помилка запиту даних облікового запису. Помилка: "{" помилка ": {" помилки ": [{" домен ":" глобальний "," причина ":" недостатні дозволи "," повідомлення ":" Користувач не має жодного облікового запису Google Analytics. "}]," code ": 403," message ":" Користувач не має жодного облікового запису Google Analytics. "}}"
JosFabre

1
@Lev більше 3 років ця відповідь все ще справедлива. Я просто сподівався, що Google це покращив, але ні. Це було зроблено на відмінно: D
itnikolay

28

Я стикався з тим же питанням. Це вирішено, додавши ідентифікатор електронної пошти користувача облікового запису послуги (your account@yourwebsite-dev.iam.gserviceaccount.com ) користувачам у вашому обліковому записі Analytics,

Домашня сторінка Analytics -> Адміністратор (ліва панель) -> Керування користувачами -> додати (натисніть на знак плюс у правій частині меню) -> Додати нового користувача -> Додати ідентифікатор електронної пошти у ввести адреси електронної пошти.

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

Тепер це вирішить питання.


1
Чому ця відповідь не приймається? Я витрачаю 2 дні, намагаючись з’ясувати, чому слідкуючи за підручником, що веде мене до цієї помилки.
Рагнар

8

Це згадується у коментарі вище, але якщо ви додасте адресу електронної пошти в розділі "Керування користувачами" для свого облікового запису , воно не працюватиме. Ви повинні натиснути на Управління користувачами в частині перегляду екрана.

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


Я знаю, що минуло багато років, але я тепер додав адресу до акаунта , і схоже, це прекрасно працює.
Пітер

я не можу побачити User Managementпосилання в розділі Переглянути на моєму кінці
aldrien.h

4

Ви також отримаєте цю помилку, якщо ви ніколи не входили в обліковий запис google, з яким намагалися пройти автентифікацію.


6
Я просто залишу це тут: посилання на веб-інтерфейс Google Analytics
naXa

А де пароль для електронної пошти? Я спробував пароль, який Google показує мені перед завантаженням сертифікату .p12, але він недійсний
ymakux

2

Я отримував помилку 403, поки я не змінив дозволи на обліковий запис електронної пошти з Google Analytics з "Прочитати та проаналізувати" на щось інше, зберег його, а потім змінив дозволи на "Читання та аналіз", і воно спрацювало.


Це допомогло. Я створив новий "Обліковий запис служби" за API та Auth / Credentials; і зберегли пару ключів .p12. Потім я зайшов у консоль управління користувачем Analytics і додав електронну адресу користувача користувача. .p12 авторизація за допомогою PHP API працює, але тільки якщо я відміняю "Читати та аналізувати" лише у списку дозволів.
Johnny O

2

На всякий випадок, якщо це не працює, спробуйте відкрити завантажений вами файл JSON та знайдіть client_emailі скопіюйте цю електронну адресу та додайте її до файла перегляду

Натисніть на

Analytics-Home Page ->Admin(left pane) -> User Management -> add (click on plus sign on right side of the menu) -> Add new User -> Add the client_email address which you copied.

Якщо це все ще не працює

Analytics-Homepage-> Admin ->Views->User Management(Click on add(+) symbol, add this ccopied client_email address and give permissions and save it.

2

Це послання , яке ми отримуємо , коли дозвіл не надано client_email, в Google alalytics , client_emailце ви отримали з файлу JSON . щоб надати дозвіл, який client_emailви використовуєте у своїй програмі, перейдіть на сайт Google Analytics і натисніть "Адміністратор (значок налаштування)"

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

ви отримаєте список меню правильно, там натисніть "Переглянути управління користувачами"

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

Там ви побачите значок "+" та "додати користувача",

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

Після натискання на це вам потрібно додати client_emailв "поле адреси електронної пошти" і зберегти його, ви повинні бути готовими!

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


1

Мене вдарило помилка 403. Ці кроки мене оточили. Щоб було зрозуміло, я намагався отримати зразок Google "HelloAnalytics.php", який працює з OAuth (без взаємодії з користувачем, підходить для роботи з Cron тощо).

Увімкнувши API Analytics, я створив новий "Обліковий запис сервісу" під API та Auth / Credentials; і зберегли пару ключів .p12. Потім я зайшов у консоль управління користувача Analytics і додав електронну адресу цього користувача.

.p12 авторизація за допомогою PHP API працює, якщо я відміняю лише "Читання та аналіз" лише у списку дозволів. Якщо я додаю "Керувати користувачами" та / або "Редагувати", я отримаю 403. Сподіваюся, це корисно, я розглядав це протягом декількох годин ...


0

Користувач, для якого ви намагаєтеся використовувати API, не ввімкнув його службу GA.
Просто мати обліковий запис google недостатньо .

... Однак наявність облікового запису Google автоматично не надає вам доступ до Analytics. По-перше, ви повинні зареєструватися в Google Analytics, одноразовому, простому процесі ...


0

У мене теж була ця проблема, і я виявив, що проблема полягає в тому, що я попросив занадто багато дозволів. Консоль розробника говорить, щоб запитувати http://www.googleapis.com/auth/analytics і http://www.googleapis.com/auth/analytics.readonly дозволи, і дозволи. Це не спрацювало, коли я також використовував subпретензію. subВимога інструктує Google випустити маркер доступу , який працює від імені іншого користувача - в моєму випадку облікового запису Google , яка є власником облікового запису служби. Я видалив analyticsдозвіл і зупинився analytics.readonlyна додатковій заяві:

{
  "iss":"123123123123123-xxxxxxxxxxxxxxxxxxxxxxxx@developer.gserviceaccount.com",
  "sub":"me.example@gmail.com"
  "scope":"http://www.googleapis.com/auth/analytics",
  ...
}

Виданий маркер Bearer дозволяє мені робити (принаймні деякі) запити Google Analytics до профілів, які належать зовсім іншим обліковим записам Google, але якими вони ділилися (лише для читання) з моїм користувачем gmail (me.example@gmail.com) .


1
Що є додатковим під час використання я SDK клієнта Google Analytics?
Dejell

Бажаю, щоб це спрацювало! Я отримую таку помилку, коли намагаюся робити те саме: Google_Auth_Exception [401]: Помилка оновлення маркера OAuth2, повідомлення: '{"помилка": "несанкціонований_кліент", "помилка_опис": "Несанкціонований клієнт або область в запиті." } '
SEOF

Я пропоную вам продовжувати це. Ми все ще використовуємо це для отримання даних у режимі реального часу з GA кожні кілька хвилин, всі використовують bash, не менше!
mogsie

0

Мені вдалося виправити це, переконавшись, що

client = Google :: APIClient.new (: application_name => 'X',: application_version => '1')

Змінна назва назви програми "X" вище - це ІМНІЙ ОБЛІК на інформаційній панелі GA, а не ім'я ВЛАСНОСТІ, яке в моєму випадку було фактичним URL-адресою сайту, до якого я хочу отримати доступ.

Заплутаний, але на щастя виправлений (без подяки від Google!)


Я намагаюся знайти це "X". Чи можете ви розмістити знімок екрана?
Dejell

0

Проблема виникає, оскільки ми не надаємо аргумент "суб". Якщо ми цього не надаємо, дзвінок відбувається від імені довгої електронної пошти облікового запису служби.

Тож просто надайте під аргумент, електронний лист, до якого ви вже отримали доступ у звіті, і все має працювати добре!


0

Я отримав таку ж помилку, оскільки не ввійшов у Google Analytics. Тож я вирішив це, підписавши в обліковому записі аналітики.


0

Замість використання облікового запису послуги ви можете усунути необхідність додавання нових дозволів користувача (відповідно до головних відповідей у ​​цій темі), використовуючи OAuth client ID облікові дані.

Перейдіть на інформаційну панель облікових даних API і натисніть "Створити облікові дані" -> "Ідентифікатор клієнта OAuth". Після цього вам слід отримати ідентифікатор клієнта та секрет клієнта, що вам потрібно автентифікувати API.

Тепер ви можете використовувати OAuth2WebServerFlowдля автентифікації на основі використання. Ось приклад python3:

from apiclient.discovery import build
from oauth2client.client import OAuth2WebServerFlow

# TODO: Fill these in...
CLIENT_ID = ''
CLIENT_SECRET = ''
VIEW_ID = ''

flow = OAuth2WebServerFlow(
    CLIENT_ID, CLIENT_SECRET,
    'https://www.googleapis.com/auth/analytics.readonly',
    redirect_uri='urn:ietf:wg:oauth:2.0:oob'
)

authorize_url = flow.step1_get_authorize_url()
print('Receive code from:\n%s\n' % authorize_url)
code = input('Enter code here:').strip()
credentials = flow.step2_exchange(code)

api = build('analyticsreporting', 'v4', credentials=credentials)
body={
    'reportRequests': [{
        'viewId': VIEW_ID,
        'dateRanges': [{'startDate': '7daysAgo', 'endDate': 'today'}],
        'metrics': [{'expression': 'ga:sessions'}],
        'dimensions': [{'name': 'ga:country'}]
    }]
}

data = api.reports().batchGet(body=body).execute()
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.