picklepete / pyicloud

A Python + iCloud wrapper to access iPhone and Calendar data.
MIT License
2.57k stars 452 forks source link

Has anyone tried to edit existing Contacts? #110

Open MikeTheCanuck opened 7 years ago

MikeTheCanuck commented 7 years ago

I'm on a mission to use PyiCloud to update my iCloud Contacts with data I'm scraping out of LinkedIn: https://mikethecanuck.wordpress.com/2016/12/31/update-my-contacts-with-python-exploring-linkedins-and-iclouds-contact-apis/

From what I can tell, PyiCloud doesn't currently implement support for editing existing Contacts.

Is this something anyone has explored, thought about, scratched at? I'm a little out of my depth here (constructing lower-level requests against an undocumented API) and I'm hoping I can continue to stand on the shoulders of giants as I have until now.

MikeTheCanuck commented 7 years ago

I've continued to think about this, have come up with an abstract proposal, and will see if I can make any headway in implementing an update_contact() function in the contacts module, following the pattern of the post() function in the reminders module. https://mikethecanuck.wordpress.com/2017/01/01/update-my-contacts-with-python-thinking-about-how-far-to-extend-pyicloud-to-enable-put-request/

I am in completely virgin territory at this point, never having implemented anything using the requests package, and having only a vague idea how the logic of the Reminders post() function really works. Any comments, hints or ideas are very welcome.

MikeTheCanuck commented 7 years ago

For posterity, here's a link to the enhancement request I made to the pyobjc project to provide an example script for using the Contacts framework wrapper. This is an alternative/workaround to trying to decipher the etag and other issues in accessing the Contacts API directly.

chuckhacker commented 5 years ago

I'm interested in syncing contacts as well with a dataset of my coworkers' profiles. It's a shame there is no public API for updating/adding new contacts.