Методы и примеры кода для использования API Google: поиск, карты, календарь и диск

Вот несколько методов с примерами кода для выполнения различных задач с использованием сервисов и API Google.

  1. API поиска Google:

    • Используйте Google Search API для выполнения веб-поиска и программного получения результатов поиска.
    import requests
    def search_google(query):
        url = "https://www.googleapis.com/customsearch/v1"
        params = {
            "key": "YOUR_API_KEY",
            "cx": "YOUR_CUSTOM_SEARCH_ENGINE_ID",
            "q": query
        }
        response = requests.get(url, params=params)
        data = response.json()
        # Process the search results
        # ...
        return data
  2. API Карт Google:

    • Используйте Google Maps API для геокодирования, определения маршрутов, расчета расстояний и т. д.
    import requests
    def get_geocode(address):
        url = "https://maps.googleapis.com/maps/api/geocode/json"
        params = {
            "key": "YOUR_API_KEY",
            "address": address
        }
        response = requests.get(url, params=params)
        data = response.json()
        # Extract geolocation information
        # ...
        return data
  3. API Календаря Google:

    • Взаимодействие с API Календаря Google для создания, получения, обновления и удаления событий в календаре пользователя.
    import google.oauth2.credentials
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    def create_event(summary, start_time, end_time):
        SCOPES = ['https://www.googleapis.com/auth/calendar']
        creds = None
        if os.path.exists('token.json'):
            creds = google.oauth2.credentials.Credentials.from_authorized_user_file('token.json', SCOPES)
        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)
            with open('token.json', 'w') as token:
                token.write(creds.to_json())
        service = build('calendar', 'v3', credentials=creds)
        event = {
            'summary': summary,
            'start': {
                'dateTime': start_time,
                'timeZone': 'YOUR_TIMEZONE',
            },
            'end': {
                'dateTime': end_time,
                'timeZone': 'YOUR_TIMEZONE',
            },
        }
        event = service.events().insert(calendarId='primary', body=event).execute()
        return event.get('htmlLink')
  4. API Google Диска:

    • Используйте Google Drive API для программного управления файлами и папками на Google Диске.
    import os
    from google.oauth2.credentials import Credentials
    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.discovery import build
    def upload_file(file_path, folder_id):
        SCOPES = ['https://www.googleapis.com/auth/drive.file']
        creds = None
        if os.path.exists('token.json'):
            creds = Credentials.from_authorized_user_file('token.json', SCOPES)
        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)
            with open('token.json', 'w') as token:
                token.write(creds.to_json())
        service = build('drive', 'v3', credentials=creds)
        file_metadata = {
            'name': 'my_file.txt',
            'parents': [folder_id]
        }
        media = MediaFileUpload(file_path, mimetype='text/plain')
        file = service.files().create(body=file_metadata, media_body=media, fields='id').execute()
        return file.get('id')