Open phildini opened 8 years ago
So, digging into this, here are my findings so far:
In other words, I'm going to have to science the crap out of this.
science in the github-esque dat-science meaning?
Lol, I'm actually referencing a line from the movie "The Martian".
What I think I'll really need to do is:
Or have a weekend sprint with me where we python-3-ify those libraries!
"how hard could it be"?
Here's one of them: https://github.com/google/gdata-python-client
Here's the other one: https://github.com/geier/pycarddav
I don't know if it's worth it to try to update them over re-writing them. pycarddav in particular is based on the vobject
library, which is massive, hasn't been updated since like '09, and also doesn't support python3.
gdata-python-client has some activity where people want Python 3 at least, so we'd be serving the community: https://github.com/google/gdata-python-client/issues/29
I'm also not sure that syncing over that API is the best approach. It would require doing "since time changed" queries, then comparing against what's in ContactOtter... which I guess is basically what CardDav is already doing? :stuck_out_tongue_closed_eyes:
@paulproteus if you're interested in doing a hacking session this weekend to help me nail this out (and maybe work a bit more on #8) I'd be more interested. If I'm doing this on my own, I'll probably write a client that does just what I need.
The saga continues.
Dug more into the contacts API, found that it linked to https://developers.google.com/api-client-library/python/ for doing oauth, which isn't too bad, except that that library will only do the oauth portion, because the Contacts API doesn't support the service discovery API used by the python-api-client. Sigh.
Also came across this post: https://groups.google.com/forum/#!topic/oauth2-dev/unOUxP36Ag8, which indicates that the gdata library only supports oauth 1, but the contacts api only supports oauth2. Sigh.
Ok, more results: I got oauth working, and was able to pull a data set using requests. Hooray!
Time to learn some XML parsing, I guess.
https://github.com/tBaxter/python-card-me - python3 library with vcard support!
lolololololololol: http://blog.fruux.com/2014/10/16/google-carddav/
https://developers.google.com/google-apps/contacts/v3/?hl=en