Closed tstirrat15 closed 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.
Whoops. Forgot to add something to the testing section.
Test failures are about eventbrite key provision on travisCI
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:Run it and see that you're taken through an oauth process and that the events are then logged to the console.