COWestSlopeTech / project-kronos

MIT License
0 stars 1 forks source link

Get data from a google calendar #40

Closed tstirrat15 closed 4 years ago

tstirrat15 commented 4 years ago

Fixes #22

Motivation

We've talked about using google's data model as a starting place for our own data model, so it's gonna help to be able to look at google's data model. This implements oauth authentication against a google account and then pulling the most recent 10 events from the API, which can then be printed or stored as desired.

Current limitations

Open Questions

Are we going to get authorization against each of the organizations we want to partner with, or are we going to pass through the events through another means? It doesn't seem like you can restrict an application to reading only one calendar of yours, which means that other organizations would need to be comfortable with us having access to all of their calendars.

Otherwise @coloradobum was talking about other orgs providing an event stream to our calendar somehow through the Google Calendar interface, which would mean we only have to pull from our own calendar. I haven't researched how this would work.

Changes

See commit messages

Testing

Create an application using the button on the google calendar API docs. Save the credentials.json file to the repository root.

Go into the body of main.py, comment out or delete the body, and replace with:

from pprint import pprint
pprint(GoogleProvider().find_events())

Run it and see that you're taken through an oauth process and that the events are then logged to the console.

jcerise commented 4 years ago

To partially address open question: I think we need to architect this a bit. Building on the approach @coloradobum outlined, giving the users a UI in our app to select calendars or events they want to publish, and making them accessible via an internal API to our centralized calendar seems like a reasonable approach, and also gives our providers complete control over what content they share from their already published sources. This UI could pull in whatever types of calendars they have into a central spot, and allow for publishing from any of them.

Its an extra step for the content creators, but it doesn't seem like an onerous one. I think we'll need to chat about this more at the next meetup.

tstirrat15 commented 4 years ago

Whoops. Forgot to add something to the testing section.

tstirrat15 commented 4 years ago

Test failures are about eventbrite key provision on travisCI