Microsoft Outlook Rest API - microsoft-graph-api

I am trying sync office 365 calendar events with my website for multiple outlook users.
I am referring to the Write a PHP app to get Outlook mail, calendar, and contacts documentation.
As per 'Account requirements' section:
In order to use the Application Registration Portal, you need either an Office 365 work or school account, or a Microsoft account. If you don't have either of these, you have a number of options:
Sign up for a new Microsoft account here.
You can obtain an Office 365 subscription in a couple of different ways:
You can get a free one-year Office 365 Developer subscription by signing up for the Office Developer program.
You can signup for a 25-user free trial of the Office 365 Business subscription.
So below are my queries,
When referring to 'free 25 users', what does it mean exactly?
For using this API, do we need to buy office 365 subscription?

In order to register your application in the Registration Portal (apps.dev.microsoft.com), you either need a Microsoft Account (aka an Outlook.com account) or an account in an Azure AD tenant.
You do not need to have a subscription to Office 365 for this (although it would seem pretty valuable to have one if you're going to be writing code that uses an O365 API).
You can obtain a free developer account via the Office 365 Developer Program. This program includes a free 12-month subscription to Office 365 for use in development and testing.

1) When referring to 'free 25 users', what does it mean exactly?
If you will go for trial of office 365 subscription, you can have maximum 25 users and 1 month trial period limitation. after that the account will be expired.
2) For using this API, do we need to buy office 365 subscription?
If your all outlook users for which you want to sync calendar events are Microsoft organizational accounts (user#organisation.com) then you don't need office 365 subscription.
otherwise you will need the one

Related

Microsoft Graph API: List sign in of users assigned any Dynamics license

I want to list sign in of users who are assigned any of the MS Dynamics licenses in order to get the usage report. As it looks the MS Dynamics license grants access to several apps and if any user is signing in any of that apps he/she is assumed to be effectively using the license.
Is there any way we can get the information using Graph API?
Thanks.
Thank you for reaching out, to my knowledge, there isn't currently a way to list signed in users using the Dynamics license with Graph API. M365 Usage Reports only show Dynamics 365 Customer Voice Activity not usage of apps using the license. You might want to use the Power Platform Admin Centre to manage Dynamics 365 apps.
Would you consider filing a feature request on the M365 Developer Platform so this can be looked into?
Let me know whether this helps and if you have further questions,

Is there clear instruction on migrating to office graph from EWS Impersonation?

My company currently offer an Exchange Calendar integration to our customer by using EWS. Each customer's IT department will create an Admin Account that has the Impersonation right and provide it to us by entering into the UI tool. When we update the calendar event of their employee's calendar, we use that account login to Impersonate the employee.
With the deprecation of Basic Auth access for EWS in October 13th, 2020. https://developer.microsoft.com/en-us/graph/blogs/upcoming-changes-to-exchange-web-services-ews-api-for-office-365/
I can't get a clear answer on how we can migrate.
In general, do we register as an App (daemon), then each client company need to grant permission to us? How do we connect to their Exchange server? With what?
My company also has similar kind of app - booking using Outlook calender. We are currently working on a migration for our Office 365 customers.
The change in EWS is for Office 365/Exchange Online only.
If you are serving Exchange Online customers you can continue to use EWS for a while, but you will need to migrate from Basic Auth to OAuth. You can find a good description on how to implement OAuth with EWS here
To become "future-proof" you should also migrate from EWS to Microsoft Graph.

Office 365 Admin : Audit MSGraph requests in Office365 Security & Compliance

As an exchange admin, I want to audit Graph API calls
Under Office 365 Security and Compliance section, Audit Log Search, I can find audit logs for other components such as Power BI but nothing for Graph.
I tried using Exchange Mailbox Activities but I don't see any audit logs when I access/update meeting items using Graph API.
Is there a way I can audit these calls?
To monitor the MSGraph app activities, you should check for 'Add OAuth2 Permission Grant' activity under Azure AD workload. But O365 Security & Compliance portal doesn't show the activities performed by Azure AD workload. 
As a workaround, you shall use the Search-UnifiedAuditLog cmdlet.
sample code snippet for getting last month data
Search-UnifiedAuditLog -StartDate 4/23/2019 -EndDate 5/23/2019 -Operations "AddOAuth2PermissionGrant"
If you would like to explore the activities using a GUI interface then you shall try the Office 365 auditing reports available in AdminDroid Office 365 Reporter.

Office 365 developer program for Education

We have already configured a developer tenant for O365 (with the Office 365 developer program), but what we really need is an Office 365 for Education tenant for developing purposes. More specifically, we are testing the Graph API, and the Education specific API's cannot be used.
com.microsoft.graph.http.GraphServiceException:
Error code: Request_BadRequest
Error message: The following extension properties are not available:
..._Education_SyncSource.
Is it possible to create this kind of tenant in the developer program? If this scenario is not supported, how should we proceed to configure a stable developer tenant to integrate our SIS with O365 for Education?
If you are a Microsoft Partner Network member, you can request a code for an Education test tenant. Fill out the following form, and someone will contact you to discuss our needs.
https://sdscrm.microsoftcrmportals.com/partnersignup/

Office 365 Outlook Calendar : How to access multiple user's calendar in a single ASP.NET MVC application?

We are trying to implement a calendar portal (C# ASP.NET MVC) where one admin can see multiple outlook(or office 365) users calendar and see who is available. So multiple accounts should be accessed from one ASP.NET MVC application.
First question : Is it even possible? (may be because I had already seen post on stackoverflow : EWS - Access All Shared Calendars )
Second question : What would be the right approach?
Third question : Is there any project available from Microsoft or article? (I could find any good one)
I have had gone through Using Azure Multi-Tenant application without an Office 365 subscription to access users calendar information and https://www.youtube.com/watch?v=0kvDyl5HShA.
I have had also get connected with a single user's account via OAuth2. It was successful.
Currently, we have this subscription. If any more information required then please comment. Then I will add more description as per necessary.
Thank you.
You could try to build Daemon or Service Apps using client credential grant flow as described in this blog, the service app that requires admin consent, but is authorized to access any user's mailbox/calendar information in your Office 365 tenant. You could click here for sample web app that uses client credential flow to access Users, Mail, Calendar, Contacts in Office 365 via Rest APIs .
This link you provided needs to associate your Office 365 account with Azure AD to create and manage apps .If you can have an existing Microsoft Azure subscription, you can associate your Office 365 for business subscription with it. .Otherwise, you'll need to create a new Azure subscription and associate it with your Office 365 account in order to register and manage apps. For more details ,please read how to set up your Office 365 development environment.

Resources