Tworzę skrypt na podstawie przewodnika krok po kroku Google Analytics z tej strony:
https://developers.google.com/analytics/resources/tutorials/hello-analytics-api
Autoryzacja odbywa się bez problemów, dopóki nie spróbuje uzyskać dostępu do danych. Kod powrotu to 403, a komunikat o błędzie to:
Użytkownik nie ma żadnego konta Google Analytics
Ta wiadomość nie ma sensu: moje konto zawiera dane Google Analytics, śledzę wiele witryn i mogę uzyskać do nich dostęp z przeglądarki internetowej bez problemu. Zezwoliłem na API Analytics za pośrednictwem konsoli interfejsów API Google, a dostęp do interfejsu API zapewnia mi właściwe dane.
źródło
Po prostu dodaj podany adres e-mail (format
71667655853644-o653rrdkq5hthsgo0otbpojoo@developer.gserviceaccount.com
)do menedżerów użytkowników:
Chciałbym, żeby ci to pomogło
źródło
Miałem ten sam problem. Problem został rozwiązany przez dodanie identyfikatora e-mail użytkownika konta usługi (
your [email protected]
) do użytkowników na koncie Analytics w obszarzeStrona główna Analytics -> Administrator (lewy panel) -> Zarządzanie użytkownikami -> dodaj (kliknij znak plus po prawej stronie menu) -> Dodaj nowego użytkownika -> Dodaj identyfikator e-mail w polu wprowadź adresy e-mail.
Teraz to rozwiąże problem.
źródło
Jest to wspomniane w komentarzu powyżej, ale jeśli dodasz adres e-mail w sekcji Zarządzanie użytkownikami dla swojego konta , nie zadziała. Musisz kliknąć Zarządzanie użytkownikami w części widoku ekranu.
źródło
User Management
linku w sekcji Wyświetl po mojej stronieTen błąd pojawi się również, jeśli nigdy nie logowałeś się na konto Google, za pomocą którego próbujesz się uwierzytelnić.
źródło
Otrzymywałem błąd 403, dopóki nie zmieniłem uprawnień konta e-mail z poziomu Google Analytics z „Czytaj i analizuj” na coś innego, zapisałem go, a następnie zmieniłem uprawnienia z powrotem na „Odczyt i analiza” i zadziałało.
źródło
Na wszelki wypadek, jeśli to nie zadziała, spróbuj otworzyć pobrany plik JSON i wyszukaj
client_email
i skopiuj ten adres e-mail i dodaj go do pliku View FileKliknij
Jeśli to nadal nie zadziała
źródło
Ta wiadomość, gdy nie mamy zezwolenie udzielone
client_email
w alalytics google ,client_email
to masz z pliku JSON . aby udzielić uprawnień,client_email
których używasz w swojej aplikacji, przejdź do witryny Google Analytics i kliknij „Administrator (ikona ustawień)”zobaczysz listę menu, kliknij „Wyświetl zarządzanie użytkownikami”
Tam zobaczysz ikonę „+” i „dodaj użytkownika”,
po kliknięciu na to musisz dodać
client_email
w polu adresu e-mail i zapisać je, wszystko powinno być gotowe!źródło
Uderzałem w błąd 403. Te kroki pozwoliły mi to obejść. Żeby było jasne, próbowałem uzyskać próbkę Google „HelloAnalytics.php” działającą z OAuth (bez interakcji użytkownika, odpowiednia do zadań cron itp.).
Po włączeniu interfejsu API Analytics utworzyłem nowe „Konto usługi” w obszarze API & Auth / Credentials; i zapisał parę kluczy .p12. Następnie przeszedłem do konsoli zarządzania użytkownikami Analytics i dodałem ten adres e-mail Usługobiorcy.
.p12 autoryzacja za pomocą interfejsu API PHP działa, jeśli ja zaznaczać tylko „read & Analyze” tylko na liście uprawnień. Jeśli dodam „Zarządzaj użytkownikami” i / lub „Edytuj”, otrzymam 403. Mam nadzieję, że to jest pomocne, szlifowałem to przez kilka godzin ...
źródło
Użytkownik, dla którego próbujesz użyć interfejsu API, nie włączył swojej usługi GA.
Samo posiadanie konta Google nie wystarczy .
źródło
Miałem też ten problem i stwierdziłem, że problem polegał na tym, że poprosiłem o zbyt wiele uprawnień. Konsola programisty mówi, aby zapytać o oba uprawnienia
http://www.googleapis.com/auth/analytics
ihttp://www.googleapis.com/auth/analytics.readonly
uprawnienia. To nie zadziałało, gdy korzystałem również zsub
oświadczenia.sub
Roszczenie przesyła zlecenie Google wydać żeton dostępu, który działa w imieniu innego użytkownika - w moim przypadku konta Google, które jest właścicielem konta usługi. Usunąłemanalytics
pozwolenie i utknąłem zanalytics.readonly
roszczeniem podrzędnym:Wydany token okaziciela umożliwia mi wysyłanie (przynajmniej niektórych) zapytań Google Analytics do profili, które są własnością zupełnie innych kont Google, ale które zostały udostępnione (tylko do odczytu) mojemu użytkownikowi Gmaila ([email protected]) .
źródło
Udało mi się to naprawić, upewniając się, że
client = Google :: APIClient.new (: application_name => 'X',: application_version => '1')
nazwa aplikacji zmienna 'X powyżej była nazwą KONTA na pulpicie nawigacyjnym GA, a nie nazwą PROPERTY, która w moim przypadku była rzeczywistym adresem URL witryny, do której chcę uzyskać dostęp.
Mylące, ale na szczęście naprawione (bez dzięki Google!)
źródło
Problem występuje, ponieważ nie podajemy argumentu „sub”. O ile tego nie udostępnimy, rozmowa jest wykonywana w imieniu tego długiego adresu e-mail konta usługi.
Po prostu podaj argument podrzędny z adresem e-mail, któremu już dałeś dostęp w raporcie, a wszystko powinno działać dobrze!
źródło
Otrzymałem ten sam błąd, ponieważ nie zalogowałem się do Google Analytics. Więc rozwiązałem to, logując się na konto analityczne.
źródło
Zamiast korzystać z konta usługi, możesz ominąć potrzebę dodawania nowych uprawnień użytkownika (zgodnie z najlepszymi odpowiedziami w tym wątku), używając
OAuth client ID
poświadczeń.Przejdź do pulpitu nawigacyjnego danych logowania API i kliknij „Utwórz dane logowania” -> „Identyfikator klienta OAuth”. Następnie powinieneś otrzymać identyfikator klienta i sekret klienta, które będą potrzebne do uwierzytelnienia API.
Teraz możesz używać
OAuth2WebServerFlow
do uwierzytelniania na podstawie użycia. Oto przykład pythona3:źródło