Rozwiązywanie problemów z uwierzytelnianiem i autoryzacją

Na tej stronie opisujemy niektóre typowe problemy związane z uwierzytelnianiem i autoryzacją.

This app isn't verified

Jeśli na ekranie zgody OAuth wyświetla się ostrzeżenie „Ta aplikacja nie jest zweryfikowana”, oznacza to, że aplikacja żąda zakresów zapewniających dostęp do poufnych danych użytkownika. Jeśli aplikacja korzysta z zakresów wrażliwych, musi przejść proces weryfikacji w celu usunięcia tego ostrzeżenia i innych ograniczeń. Na etapie programowania możesz kontynuować ominięcie tego ostrzeżenia, wybierając Zaawansowane > Przejdź do {Project Name} (niebezpieczny).

File not found error for credentials.json

Po uruchomieniu przykładowego kodu może pojawić się komunikat o błędzie „nie znaleziono pliku” lub „brak takiego pliku” związany z danymi uwierzytelniającymi.json.

Ten błąd występuje, jeśli dane logowania do aplikacji komputerowej nie zostały autoryzowane. Aby dowiedzieć się, jak utworzyć dane logowania dla aplikacji komputerowej, przeczytaj artykuł Tworzenie danych logowania.

Po utworzeniu danych logowania sprawdź, czy pobrany plik JSON jest zapisany jako credentials.json. Następnie przenieś plik do katalogu roboczego.

Token has been expired or revoked

Po uruchomieniu przykładowego kodu może pojawić się komunikat o błędzie „Token wygasł” lub „Token został unieważniony”.

Ten błąd występuje, gdy token dostępu z serwera autoryzacji Google wygasł lub został unieważniony. Informacje o potencjalnych przyczynach i rozwiązaniach znajdziesz w artykule o wygaśnięciu tokenów odświeżania.

Błędy Pythona

Oto kilka typowych błędów w Pythonie.

AttributeError: 'Module_six_moves_urllib_parse' object has no attribute 'urlparse'

Ten błąd może wystąpić w Mac OSX, gdy domyślna instalacja modułu six (zależność biblioteki Pythona) jest wczytywana przed tym, który zainstalowano pip. Aby rozwiązać ten problem, dodaj lokalizację instalacji pip do zmiennej środowiskowej PYTHONPATH:

  1. Określ lokalizację instalacji pip:

    pip show six | grep "Location:" | cut -d " " -f2
    

    Zanotuj tę lokalizację, ponieważ będzie potrzebna w następnym kroku.

  2. Dodaj do pliku ~/.bashrc ten wiersz, zastępując INSTALL_PATH lokalizacją określoną w poprzednim kroku:

    export PYTHONPATH=$PYTHONPATH:INSTALL_PATH
    
  3. Załaduj ponownie plik ~/.bashrc:

    source ~/.bashrc
    

TypeError: sequence item 0: expected str instance, bytes found

Ten błąd jest spowodowany błędem w usłudze httplib2. Aby rozwiązać ten problem, uaktualnij httplib2 do najnowszej wersji:

pip install --upgrade httplib2

Cannot uninstall 'six'

Po uruchomieniu polecenia pip install może pojawić się ten błąd:

Cannot uninstall 'six'. It is a distutils installed project and thus we
cannot accurately determine which files belong to it which would lead to
only a partial uninstall.

Ten błąd występuje w systemie macOSX, gdy pip próbuje uaktualnić fabrycznie zainstalowany pakiet six. Aby obejść ten problem, dodaj do polecenia pip install flagę --ignore-installed six.