Utilisez Google Agenda à partage limité avec Lambda (Python) [cloudpack Osaka]

C'est un mémorandum parce que j'étais malade. Utilisez le calendrier Google qui est partagé exclusivement avec Lambda (Python). _ Je l'ai fait au travail, mais je vais livrer la tragédie que la bibliothèque de Google a été mise à jour une semaine avant le début, la plus rapide du Japon. _

Bibliothèques requises

Ci-dessous, veuillez mettre avec pip

Créer un compte de service

Pour accéder à Google Agenda, vous devez créer un utilisateur d'authentification appelé compte de service.

Accédez à API Manager à partir de la Google Developer Console (https://console.developers.google.com/).

API_ライブラリ_-_msp-calendar.png

Activez l'API Calendar. Calendar_API_-_msp-calendar.png

Accédez à "Informations d'identification" à partir de "Gestionnaire d'API" et créez une clé de compte de service. 認証情報_-_msp-calendar.png

Veuillez saisir votre nom et votre identifiant de compte de service. Nous utiliserons l'identifiant du compte de service plus tard. De plus, spécifiez cette fois le type de clé p12. サービス_アカウントキーの作成_-_msp-calendar 2.png

Puisque le fichier p12 est DL, convertissez-le en pem openssl pkcs12 -in key.p12 -nodes -nocerts > key.pem

Paramètres de partage du calendrier

Ajoutez le compte de service que vous avez créé aux utilisateurs partagés de Google Agenda. J'étais accro à la documentation officielle car je n'ai pas pu trouver la description ici. Il y avait une description comme comment usurper les utilisateurs, mais il semble que cela ne puisse pas être utilisé à moins d'être ajouté.

  1. "Paramètres" de la roue dentée en haut à droite de l'agenda Google
  2. Sélectionnez l'onglet "Calendrier" et allez dans "Partager: Modifier les paramètres" アイレット株式会社_-カレンダー-_設定.png
  3. Ajoutez le compte de service que vous venez de créer アイレット株式会社_-カレンダー-_共有.png

Code source

import httplib2
from apiclient import discovery
import oauth2client
from oauth2client.service_account import ServiceAccountCredentials
from datetime import datetime as dt

SERVICE_ACCOUNT_ID = "[email protected]" #Compte de service acquis

def lambda_handler(event, context):
    credentials = get_credentials()
    http = credentials.authorize(httplib2.Http())
    service = discovery.build(
        'calendar',
        'v3',
        http=http
    )

    events = service.events().list(calendarId=CALENDAR_ID).execute()

    return events.get('items', [])


def get_credentials():
    scopes = 'https://www.googleapis.com/auth/calendar'
    credentials = ServiceAccountCredentials.from_p12_keyfile(
        SERVICE_ACCOUNT_ID,
        'key.pem',
        scopes=scopes
    )

    return credentials

Après cela, ce n'est pas grave si vous le téléchargez sur Lambda en faisant lambda-uploader ou en le compressant vous-même!

Recommended Posts

Utilisez Google Agenda à partage limité avec Lambda (Python) [cloudpack Osaka]
Exploitez TwitterBot avec Lambda, Python
[GCP] Exploitez Google Cloud Storage avec Python
Télécharger des fichiers sur Google Drive avec Lambda (Python)
Utiliser Kinesis avec Python
Faire fonctionner Blender avec Python
Utiliser Excel avec Python (1)
Utiliser Excel avec Python (2)
Exploitez Excel avec Python open pyxl
Comment extraire n'importe quel rendez-vous dans Google Agenda avec Python
Étudiez Python avec Google Colaboratory
[Note] Faites fonctionner MongoDB avec Python
Accédez à Google Drive avec Python
AWS Lambda + Twilio permet aux rappels de Google Agenda d'appeler avec notification vocale
Créez des rendez-vous pour le concours AtCoder sur Google Agenda avec Python et GAS
Faites fonctionner l'imprimante de reçus avec python
Essayez d'exploiter Facebook avec Python
Détection de visage avec Lambda (Python) + Rekognition
Faites fonctionner les appareils électroménagers ECHONET Lite avec Python
Notifier HipChat avec AWS Lambda (Python)
Utiliser PostgreSQL avec Lambda (Python + psycopg2)
J'ai essayé de mettre à jour le calendrier Google avec des rendez-vous CSV à l'aide de Python et de l'API Google
[AWS] Utilisation de fichiers ini avec Lambda [Python]
Faire fonctionner l'alimentation smartlife avec python (de-IFTTT)
Écran partagé avec l'application python exe
Manipulation des données DynamoDB avec Lambda (Node et Python)
Enregistrer les utilisateurs avec le SDK d'administration Google (python)
Connectez-vous à s3 avec AWS Lambda Python
Obtenez des vacances avec l'API Google Agenda
[Python] Utiliser automatiquement le navigateur avec Selenium
Faites fonctionner des appareils électroménagers avec Python et IRKit
Essayez d'attribuer ou de changer avec Python: lambda
Télécharger des images sur Google Drive avec Python