Browse Source

google calendar

Shendan JIN 8 years ago
parent
commit
4a9a4df318
2 changed files with 105 additions and 0 deletions
  1. 1 0
      client_secret.json
  2. 104 0
      gcal.py

+ 1 - 0
client_secret.json

@@ -0,0 +1 @@
+{"installed":{"client_id":"574050043799-cg1as360vnr3a0n6i1gcr6t8b9tmofqb.apps.googleusercontent.com","project_id":"halogen-choir-122415","auth_uri":"https://accounts.google.com/o/oauth2/auth","token_uri":"https://accounts.google.com/o/oauth2/token","auth_provider_x509_cert_url":"https://www.googleapis.com/oauth2/v1/certs","client_secret":"Ag2R1LV0VCV3Rj11dGtuTZUH","redirect_uris":["urn:ietf:wg:oauth:2.0:oob","http://localhost"]}}

+ 104 - 0
gcal.py

@@ -0,0 +1,104 @@
+from __future__ import print_function
+import httplib2
+import os
+
+from apiclient import discovery
+import oauth2client
+from oauth2client import client
+from oauth2client import tools
+
+import datetime
+
+try:
+    import argparse
+    flags = argparse.ArgumentParser(parents=[tools.argparser]).parse_args()
+except ImportError:
+    flags = None
+
+# If modifying these scopes, delete your previously saved credentials
+# at ~/.credentials/calendar-python-quickstart.json
+SCOPES = 'https://www.googleapis.com/auth/calendar.readonly'
+CLIENT_SECRET_FILE = 'client_secret.json'
+APPLICATION_NAME = 'Google Calendar API Python Quickstart'
+
+
+def get_credentials():
+    """Gets valid user credentials from storage.
+
+    If nothing has been stored, or if the stored credentials are invalid,
+    the OAuth2 flow is completed to obtain the new credentials.
+
+    Returns:
+        Credentials, the obtained credential.
+    """
+    home_dir = os.path.expanduser('~')
+    credential_dir = os.path.join(home_dir, '.credentials')
+    if not os.path.exists(credential_dir):
+        os.makedirs(credential_dir)
+    credential_path = os.path.join(credential_dir,
+                                   'calendar-python-quickstart.json')
+
+    store = oauth2client.file.Storage(credential_path)
+    credentials = store.get()
+    if not credentials or credentials.invalid:
+        flow = client.flow_from_clientsecrets(CLIENT_SECRET_FILE, SCOPES)
+        flow.user_agent = APPLICATION_NAME
+        if flags:
+            credentials = tools.run_flow(flow, store, flags)
+        else: # Needed only for compatibility with Python 2.6
+            credentials = tools.run(flow, store)
+        print('Storing credentials to ' + credential_path)
+    return credentials
+
+def main():
+    """Shows basic usage of the Google Calendar API.
+
+    Creates a Google Calendar API service object and outputs a list of the next
+    10 events on the user's calendar.
+    """
+    credentials = get_credentials()
+    http = credentials.authorize(httplib2.Http())
+    service = discovery.build('calendar', 'v3', http=http)
+
+    now = datetime.datetime.utcnow().isoformat() + 'Z' # 'Z' indicates UTC time
+    print('Getting the upcoming 10 events')
+    eventsResult = service.events().list(
+        calendarId='primary', timeMin=now, maxResults=10, singleEvents=True,
+        orderBy='startTime').execute()
+    events = eventsResult.get('items', [])
+
+    if not events:
+        print('No upcoming events found.')
+
+    i=0
+    for event in events:
+        i = i + 1
+        print('The event #', i,'------------------------')
+        start = event['start'].get('dateTime', event['start'].get('date'))
+        
+        #status :  confirmed or not
+        print('  Status:', event['status'])     
+        
+        #htmlLink:  the url of the event
+        print('  HtmlLink:', event['htmlLink'])
+        
+        #created:   the created time of the event
+        print('  Created time:', event['created'])
+        
+        #updateed:   the updated time of the event
+        print('  Updatedtime:', event['updated'])
+        
+        #summary:   the description of the event
+        print('  Description:', event['description'])
+        
+
+        print('  Location:', event['location'])
+
+        print("  Organizer's name:", event['organizer']['displayName'])
+        print("  Organizer's email:", event['organizer']['email'])
+
+        print("  Start time:", event['start']['dateTime'])
+        #print(start, event['summary']);
+
+if __name__ == '__main__':
+    main()