EventKit: Implement "share"-feature for EKCalendar (entityTypeReminder) - xcode

Is it possible to implement the "share"-feature for EKCalendar (entityTypeReminder) like it is present in the stock Reminders app? And if yes, how would that work?
Since the feature is present in various third party calendar-apps and Calendars and Reminder-Lists share the same EKCalendar-class, this has to be possible somehow, or not?
Steve

The current EventKit provides no API to do this, you would need to use/implement the respective server protocols. That is something like EWS for Exchange or CalDAV for most other servers.
In CalDAV, calendar sharing is an extension. Not all CalDAV servers support it, but iCloud, OSX server and Fruux do. You can find the documentation of the extension over here: Shared and Published Calendars in CalDAV.

Related

How to bulk update "Authorized JavaScript Origins" in Google API Console?

Currently, I have been tasked to utilize the Google People API to ask for a user's basic Google information along with their public phone numbers. So far the results have been positive.
The solution my team and I have incorporated the Google People API integration in has the capacity to be utilized across thousands of domains. As a result, my question is simply, How can my team members and I ensure that any our clients that utilize our solution with their own particular domain get our new functionality built with the Google People API?
Keep in mind, our clients have the flexibility to have http/https and any subdomain on their site. Entering each domain possibility for our client base one by one would not be an easy task. I'm seriously hoping there is a solution around the single, explicit origin entries.
Thank you for your time and help.
Warning:
You must remember that if this is source code you are giving your clients that you are not allowed to release your client id and client secret. This includes plugins and scripts.
On November 5th 2014 Google made some changes to the APIs terms of Service.
Asking developers to make reasonable efforts to keep their private
keys private and not embed them in open source projects.
So if your clients could view the code of your application and see your client id and secret you should not be giving it to them.
Read more about this issue Can I really not ship open source with Client ID?
Recommendation:
The best solution for you will be to instruct your users now to create there own project on Google Developer Console and create their own JS origins.
You may just have to provide your own wrapper around the target API where you authorize the client request yourself and then do the request from Google using your own credentials.

A Google API to know which services are enabled?

I'm looking for a Google API call to know which services (Gmail in my case) are enabled for an organization or for a user.
The question has been asked without answer there : Google API for Google Services
Thanks!
If this existed, it would likely be in the Admin SDK rather than the Gmail API. That being said, I've never seen this and wasn't able to find any hint of it within the specific APIs within the SDK (would likely be in the Admin Settings API).
I am pretty sure this isn't possible via API currently.

How can I access Gmail's native API?

I would like to access Gmail's native API. Eg,
create a search folder
tag messages
other gmail-specific actions.
There's this similar question, however the question asker seems happy with developing contextual gadgets rather than actually accessing a user's email.
In before anyone mentions: IMAP and POP are generic, non search based protocols and do not provide full access to gmail. Neither gmail.com, nor any of the official Gmail native apps, use IMAP and POP.
Most webmail services have private, non-IMAP/POP APIs and protocols, eg, hotmail (back when it existed used HTTPMail which was reverse engineered and implemented by hotwayd).
I could run Android gmail with a proxy and attempt to reverse engineer the Gmail protocol itself, but I suspect others have had the same need in the past and may already have a solution.
I did find a list of client of Gmail clients on Gmail Agent API but they don't seem maintained past 2004.
Android's Gmail app is using Google Cloud Messaging (GCM) to push email messages/notifications and sync with the phone. I think that’s “the API” you are looking for. The bad news is that it is obviously very well protected.
You can get started for free with GCM's JSON REST API and use it for your push messaging projects, but forget about using it for your Gmail in the same fashion Google does. The only option for getting a similar efficiency would be using IMAP's IDLE extension, which uses also push.
Focusing on what you need, I think there are decent solutions for the use cases you have listed in your question… You could use a [**Google App Script**][4] or libs like [**GMail for Python**][5], which seems a valid option to me... from the [**GMail for Python GitHub**][6]:
Features
Search emails
Read emails
Emails: label, archive, delete, mark as read/unread/spam, star
Manage labels
If you are developing an Android mobile app Gmail Public Labels API could also be of your interest...
Hope it helps...
EDIT: Google just introduced its GMAIL API
Update June 2014: Google have announced access to the native gmail API.
The Gmail API gives you flexible, RESTful access to the user's inbox,
with a natural interface to Threads, Messages, Labels, Drafts, and
History. From the modern language of your choice, your app can use the
API to add Gmail features like:
Read messages from Gmail
Send email messages
Modify the labels applied to messages and threads
Search for specific messages and threads
https://developers.google.com/gmail/api/

Building a calendar webapp syncing with Google Calendar, Outlook and Apple Calendar

I am about to build a simple webapp that has several tasks, each of which has got a due date.
I would like this webapp to automatically sync with Google Calendar, Outlook and Apple Calendar - 2-way integration would be a plus.
The webapp is built on a LAMP server.
What's the cleverest way I can go about this from a point of view of limiting the workload as much as possible?
And also, is that even possible? I wasn't able to find an API for Outlook or Apple Calendar.
Is CalDev the answer? Is there any product/software that will do that automatically, so that I need only to sync with it and it will do the rest?
Thanks.
You could do the following:
Synchronize your proprietary calendar with Google Calendar (make this your "master calendar") using the GCal API; if your application can produce a valid ICS file then you can import it directly to Google Calendar. As this feature is discontinued by Google you can use some online WebDAV based import/export service (I use for this Synqya)
Use the WebDAV access to the Google Calendar to synchronize Outlook and Apple Calendar with it using their calendar subscription features (this would be one way sync). If you need secured access to GCal and 2-way sync, it will involve further steps.

How to add a contact by API?

Is there any class about the operation of the contact?
how to add a contact with API like the way in windows mobile?
SaveEmailAddressTask and SavePhoneNumberTask are not useful.
The only APIs that the framework provides (at the moment at least) are the two tasks that you have already identified. To be honest, I wouldn't be surprised if it stays that way, too, in order to prevent malicious applications from littering the user's contacts.

Resources