Outlook Contact Sync - microsoft-graph-api

I want to make an application which sync Outlook. I found there is an API service called Microsoft Graph, but it only allow me to retrieve the contact list.
Let's say I have 1000 users with 200 contacts. If I use polling method, then the complexity will be very complex. Do you guys have any idea to solve this problem? Thank you

The best way to get data from Microsoft Graph in sync with a 3rd party system (native app, backend service...) is to use delta queries. Personal contacts are already supported by the functionality.

Related

Direct Routing Reporting - Microsoft Teams

Using the Microsoft Graph API to create reports doesn't seem to cover many of the user scenarios we want to see, e.g. queue statistics, missed calls, calls answered/missed etc.
Has someone here experience with it and how to address those limitations if possible?
Regards
Andri
Hi #Andri Örvar Baldvinsson,This item remains on the backlog in Teams UserVoice,
Microsoft will always focus on customer’s feedback and experience, some new features would be added to the services based on customers' feedback in the future, we also recommend you give your new idea in Teams UserVoice.

How to initiate a Microsoft Teams call(preferably video) from an external application?

I want to build an application which can initiate Teams video call to certain users.
The application will be running on a stand alone machine(like a kiosk) and upon a certain event, the application should be able to start a teams call to one more more users.
What is the best way to do this ? Following are my questions -
Does the Teams need to run under a resource account on that machine ?
Does this need the help of a teams bot? If it needs a bot, does it need to have a teams account associated with it ?
Do I need Microsoft graph to make the call ? Does graph support video call ?
Can the Microsoft Teams Rooms be used in any way to achieve this ?
I have been reading different documents which seem to offer some aspect of what I want, but not sure what is the best way here. Any help is appreciated. Thanks in advance!
We can initiate a Microsoft Teams call from an external application, We can create a call using an Graph API using an external application. When a call is created need to mention the requestedModalities where audio/video/videoBasedScreenSharing can be define for a call. please check the properties in Call resource type .

Searching all users' emails in office 365 for items sent to certain people

When someone views contact details in our CRM, I would like to pull in a summary of recent correspondence.
I can search one user easily enough:
https://graph.microsoft.com/v1.0/users/jo#example.com/messages?$search="bob#example.com"&$select=from,sender,toRecipients,subject
But you have to cross reference every user with every contact is a lot of requests.
Is it possible to search the Microsoft Graph for all emails sent from/to an address from/to all users?
If not, is there any other API / Tech out there that could get me the information.
It isn't possible to search across mailboxes from Microsoft Graph API.
I recommend visiting the UserVoice and adding your suggestion.

Inviting event attendees programatically on iOS 10

I've been using Stackoverflow for about 5 years now, and haven't felt the need to ask a single question yet, I've always found the answer i needed through previous threads. That just changed and I have a question that I really can't figure out. And it sounds so easy to do.
So the question is; how do you invite attendees, or reply/decline to calendar events on iOS under iOS 10? And please, no we don't want to bring up an EKEventViewController. We'd like to do this in our own UI. Under iOS 9 this was possible through just forcing EKAttendees objects in to the EKParticipants array with setValueForKey:. But under iOS 10 this produces an error saying 'Attendees can't be modified'.
I have used a Technical Support credit with Apple and got the reply that this was not possible. It is not possible using their APIs.
The closest to an answer i've got is to use IMIP (https://www.rfc-editor.org/rfc/rfc6047#section-2.2.1). If that's the way to go, could someone help me along on how to actually set that up? I'm not well versed in back-end development, I'm all front-end so I wouldn't really know where to start.
There also seems to be some CalDav servers on GitHub (https://github.com/mozilla-b2g/caldav) but I'm not sure how good they are, or exactly what you need to set one up.
So basically, is there anyone who could give a childs explanation to just how the heck we can send nice invites to calendar events. And if there are different solutions for Google, Apple accounts (obviously under the hood, but implementation-wise) that would be very helpful to know to.
Is this something that requires a ton of implementation on our own servers or is there some reliable service to use? That would be ideal. Maybe you should build one and you got at least one customer here :-)
Appreciate any help!
You cannot modify attendees using EventKit, but Apple already told you that:
I have used a Technical Support credit with Apple and got the reply that this was not possible. It is not possible using their APIs.
The hack with accessing the internal objects using KVC was, well, a hack and not documented API. No surprise they killed that.
So how do calendar invites work. That in itself is a very complex topic (consider delegation, resource booking like rooms, etc etc). There is a whole consortium which works on that (CalConnect), they also have a broad overview: Introduction to Internet Calendaring and Scheduling.
If you are serious into scheduling/calendaring software, it may make a lot of sense to join CalConnect for their interop events etc.
But you wanted a 'childs explanation'. I can't give that, but a short overview.
iTIP
iTIP is a standard which defines how scheduling messages flow, e.g. that you send a message to your attendee, your attendee responds back with accept/decline, what happens if a meeting is cancelled and all that.
It does NOT however specify how those messages are transferred. It is just a model on how the message flow works between the organiser and the participants.
Most 'big' calendaring systems (Exchange, Google, CalDAV servers like iCloud) use iTIP or at least something very similar.
iMIP
iMIP is a standard which defines on how to exchange iTIP messages using email. Say if you invite someone using iMIP, you'll send him a special email message with the iCalendar payload containing the invite. If your attendee accepts, his client will send back another iCalendar payload via email containing that.
iMIP is supported by a lot of systems and was, for a long time, pretty much the only way to exchange invitations between different systems (say Outlook and Lotus Notes).
However: the iOS email client does NOT support iMIP (unlike macOS or Outlook). So if someone sends you an iMIP invite to your iOS device, you won't be able to respond to that. (reality is more complex, but basically it is like that)
CalDAV
CalDAV is a set of standards around calendars stored on a server. Many many servers support CalDAV. E.g. iCloud uses CalDAV. Yahoo, Google, etc all support CalDAV. The important exception is Exchange, which doesn't support it.
In its basic setup CalDAV just acts as a store. You can use HTTP to store (PUT) and retrieve (GET, etc) events and todos using the iCalendar format.
In addition many CalDAV servers (e.g. iCloud) do 'server side scheduling'. That is, if you store an event to the server which is a meeting (has attendee properties), the server will fan out the invitations. Either internally if the attendees live on the same server, or again using iMIP.
Exchange
Exchange supports iMIP but not CalDAV. You usually access it using one of its own web service APIs, e.g. ActiveSync or Exchange Web Services. I'm no expert on them, but I'm sure that they allow you to create invites. Exchange&Outlook have an iTIP like invite flow.
etc
Is this something that requires a ton of implementation on our own servers or is there some reliable service to use?
This really depends on your requirements and needs. Do you need to process replies or just send out generic events?
If you want to host a calendar store, it probably makes sense to use an existing CalDAV server.
Calendar invitations are a very complex topic and you need to be very specific on your actual requirements to find a solution. In general interoperable invitations in 2017 are still, lets say 'difficult'.
P.S.: Since you've been using StackOverflow for about 5 years now, you should know that this question is too broad for this thing.

Inviting Users to Events via Facebook API

I'm able to create an event via the Facebook Graph API but I have yet to see a way in which to invite users to that event.
My fallback is to simply use the old REST API but sooner or later that will be phased out so I wanted to see if anyone had any suggestions.
--
Additional side question:
While using the REST API (or possibly even the Graph API) I have not found a way to invite guests who are not on Facebook. Is there a way to do this?
--
Thanks in advance for your help.
The bad news is that I think you're stuck with the REST API, at least I couldn't find another way (see http://bugs.developers.facebook.net/show_bug.cgi?id=10070 if you haven't already). The good news is that there's still so much functionality missing from the graph API that I'm pretty sure Facebook isn't going to be phasing it out any time soon. Very frustrating though...
can I use the JavaScript SDK to call the old REST API method ?
JS SDK

Resources