Krótkie wprowadzenie do Pythona

Wykonaj kroki opisane na pozostałej stronie, aby utworzyć prostą aplikację w języku Python wysyłającą żądania do interfejsu Google Apps Script API.

Wymagania wstępne

Aby uruchomić to krótkie wprowadzenie, musisz spełnić te wymagania wstępne:

  • Python 2.6 lub nowszy.
  • Narzędzie do zarządzania pakietami pip
  • Projekt Google Cloud Platform z włączonym interfejsem API. Jeżeli chcesz utworzyć projekt i włączyć interfejs API, przeczytaj artykuł Tworzenie projektu i włączanie interfejsu API.
  • Dane logowania do aplikacji komputerowej. Informacje o tym, jak utworzyć dane logowania do aplikacji komputerowej, znajdziesz w artykule Tworzenie danych logowania.

  • konto Google z włączonym Dyskiem Google,

Krok 1. Zainstaluj bibliotekę klienta Google

Aby zainstalować bibliotekę klienta Google dla Pythona, uruchom to polecenie:

  pip install --upgrade google-api-python-client google-auth-httplib2 google-auth-oauthlib

Alternatywne opcje instalacji znajdziesz w sekcji instalacji w bibliotece Pythona.

Krok 2. Skonfiguruj próbkę

Aby skonfigurować próbkę:

  1. W katalogu roboczym utwórz plik o nazwie quickstart.py.
  2. Umieść ten kod w quickstart.py:

    Apps_script/quickstart/quickstart.py
    """
    Shows basic usage of the Apps Script API.
    Call the Apps Script API to create a new script project, upload a file to the
    project, and log the script's URL to the user.
    """
    from __future__ import print_function
    
    import os.path
    
    from google.auth.transport.requests import Request
    from google.oauth2.credentials import Credentials
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient import errors
    from googleapiclient.discovery import build
    
    # If modifying these scopes, delete the file token.json.
    SCOPES = ['https://www.googleapis.com/auth/script.projects']
    
    SAMPLE_CODE = '''
    function helloWorld() {
      console.log("Hello, world!");
    }
    '''.strip()
    
    SAMPLE_MANIFEST = '''
    {
      "timeZone": "America/New_York",
      "exceptionLogging": "CLOUD"
    }
    '''.strip()
    
    
    def main():
        """Calls the Apps Script API.
        """
        creds = None
        # The file token.json stores the user's access and refresh tokens, and is
        # created automatically when the authorization flow completes for the first
        # time.
        if os.path.exists('token.json'):
            creds = Credentials.from_authorized_user_file('token.json', SCOPES)
        # If there are no (valid) credentials available, let the user log in.
        if not creds or not creds.valid:
            if creds and creds.expired and creds.refresh_token:
                creds.refresh(Request())
            else:
                flow = InstalledAppFlow.from_client_secrets_file(
                    'credentials.json', SCOPES)
                creds = flow.run_local_server(port=0)
            # Save the credentials for the next run
            with open('token.json', 'w') as token:
                token.write(creds.to_json())
    
        try:
            service = build('script', 'v1', credentials=creds)
    
            # Call the Apps Script API
            # Create a new project
            request = {'title': 'My Script'}
            response = service.projects().create(body=request).execute()
    
            # Upload two files to the project
            request = {
                'files': [{
                    'name': 'hello',
                    'type': 'SERVER_JS',
                    'source': SAMPLE_CODE
                }, {
                    'name': 'appsscript',
                    'type': 'JSON',
                    'source': SAMPLE_MANIFEST
                }]
            }
            response = service.projects().updateContent(
                body=request,
                scriptId=response['scriptId']).execute()
            print('https://script.google.com/d/' + response['scriptId'] + '/edit')
        except errors.HttpError as error:
            # The API encountered a problem.
            print(error.content)
    
    
    if __name__ == '__main__':
        main()

Krok 3. Uruchom przykład

Aby uruchomić przykład:

  1. W wierszu poleceń wykonaj następujące polecenie:

    python quickstart.py
    
  2. (opcjonalnie) Jeśli po raz pierwszy uruchomisz przykład, otworzy się nowe okno z prośbą o autoryzację dostępu do danych:

    1. Jeśli nie zalogujesz się na konto Google, pojawi się prośba o zalogowanie. Jeśli zalogujesz się na kilka kont Google, musisz wybrać jedno z nich.
    1. Kliknij Accept (Zaakceptuj). Aplikacja ma uprawnienia dostępu do Twoich danych.
  3. Przykład zostaje wykonany.

Jeśli masz problemy, zapoznaj się z sekcją Rozwiązywanie problemów z przykładem.

Rozwiązywanie problemu z próbką

W tej sekcji opisano typowe problemy, które mogą wystąpić podczas próby uruchomienia tego samouczka, oraz sugeruje możliwe rozwiązania problemów.

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

Ten błąd może wystąpić w systemie Mac OSX, w którym domyślna instalacja modułu six (zależność biblioteki Pythona) jest ładowana przed tą, z której zainstalowano pip. Aby rozwiązać problem, dodaj lokalizację instalacji pip&#39 do zmiennej środowiskowej PYTHONPATH:

  1. Określ lokalizację instalacji pip, używając tego polecenia:

    pip show six | grep "Location:" | cut -d " " -f2
    
  2. Dodaj do pliku ~/.bashrc ten wiersz, zastępując <pip_install_path> wartością określoną powyżej:

    export PYTHONPATH=$PYTHONPATH:<pip_install_path>
    
  3. Załaduj plik ~/.bashrc ponownie w dowolnym otwartym oknie terminala za pomocą tego polecenia:

    source ~/.bashrc
    

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

Ten błąd wynika z błędu w aplikacji httplib2. Aby rozwiązać ten problem, przejdź na najnowszą wersję httplib2 za pomocą tego polecenia:

pip install --upgrade httplib2

Cannot uninstall 'six'

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

"Nie można odinstalować &&39;six'. Jest to projekt instalowany pozwem, dlatego nie możemy dokładnie określić, które pliki należą do niego, co prowadzi tylko do częściowego odinstalowania.

Ten błąd występuje na komputerach z systemem Mac OSX, gdy próbuje on uaktualnić wstępnie zainstalowany pakiet six. Aby obejść ten problem, dodaj flagę --ignore-installed six do polecenia pip install wymienionego w kroku 2.

This app isn't verified

Jeśli na ekranie zgody OAuth pojawi się ostrzeżenie, „Ta aplikacja nie jest zweryfikowana” i prosi o zakresy umożliwiające dostęp do poufnych danych użytkownika. Jeśli aplikacja korzysta z zakresów wrażliwych, musi przejść proces weryfikacji, aby usunąć to ostrzeżenie i inne ograniczenia. Na etapie programowania możesz nadal pominąć to ostrzeżenie, wybierając Zaawansowane > Przejdź do: {Project Name}(niebezpieczne).

File not found error for credentials.json

Podczas wykonywania przykładowego kodu może się pojawić nieznaleziony plik lub nie ma takiego błędu dotyczącego danych logowania.json

Ten błąd występuje wtedy, gdy dane logowania do aplikacji komputerowej nie zostały przez Ciebie autoryzowane w sposób opisany powyżej w sekcji Wymagania wstępne. Aby dowiedzieć się, jak utworzyć dane logowania do aplikacji komputerowej, przeczytaj artykuł Tworzenie danych logowania.

Po utworzeniu danych logowania upewnij się, że pobrany plik JSON został zapisany jako credentials.json. Następnie umieść plik w katalogu roboczym, dołączając pozostałą część przykładowego kodu.

Więcej informacji

Więcej informacji o interfejsach API używanych w tym krótkim wprowadzeniu znajdziesz w tych artykułach: