Rozwiązywanie problemów z uwierzytelnianiem i autoryzacją

Na tej stronie opisujemy kilka typowych problemów związanych 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, które zapewniają dostęp do wrażliwych danych użytkownika. Jeśli Twoja aplikacja korzysta z zakresów wrażliwych, musi przejść proces weryfikacji, aby usunąć to ostrzeżenie i inne ograniczenia. Podczas fazy rozwoju możesz zignorować to ostrzeżenie, wybierając Zaawansowane > Przejdź do {nazwa projektu} (niebezpiecznie).

File not found error for credentials.json

Podczas uruchamiania przykładowego kodu może pojawić się komunikat o błędzie „Plik nie został znaleziony” lub „Brak takiego pliku” dotyczący pliku credentials.json.

Ten błąd występuje, gdy nie masz uprawnień do logowania się za pomocą danych logowania do aplikacji na komputer. Aby dowiedzieć się, jak utworzyć dane logowania do aplikacji na komputer, przeczytaj artykuł Tworzenie danych logowania.

Po utworzeniu danych logowania upewnij się, że pobrany plik JSON został zapisany jako credentials.json. Następnie przenieś plik do katalogu roboczego.

Token has been expired or revoked

Podczas uruchamiania przykładowego kodu może wyświetlić się komunikat o błędzie „Token wygasł” lub „Token został cofnięty”.

Ten błąd występuje, gdy token dostępu od serwera autoryzacji Google wygasł lub został cofnięty. Więcej informacji o potencjalnych przyczynach i rozwiązaniach znajdziesz w sekcji Wygaśnięcie tokena odświeżania.

Błędy w Pythonie

Poniżej znajdziesz kilka typowych błędów Pythona.

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

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

  1. Określanie lokalizacji instalacji pip:

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

    Zapisz 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. Ponownie załaduj plik ~/.bashrc:

    source ~/.bashrc
    

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

Ten błąd jest spowodowany błędem w funkcji httplib2. Aby rozwiązać ten problem, zaktualizuj aplikację httplib2 do najnowszej wersji:

pip install --upgrade httplib2

Cannot uninstall 'six'

Podczas wykonywania polecenia pip install może pojawić się ten komunikat o błędzie:

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 na Mac OSX, gdy pip próbuje uaktualnić wstępnie zainstalowany pakiet six. Aby obejść ten problem, dodaj do polecenia pip install flagę --ignore-installed six.