Outlook.com REST API - Backwards compatability with LiveID Live SDK - c#

I'm using the new unified Outlook Rest API and it works great for Office 365 accounts but Outlook.com accounts often throw MailboxNotEnabledForRESTAPI exception. I understand there is transition going on now that will move all existing accounts to the new API. Is there an example on how to implement a backwards compatible call to the older LiveId/Windows Live SDK? The application registration portal has a check box under advanced called "Live SDK Support". What does this mean and how do I write fall back logic when a user uses my service and they have not been transitioned? Any help would be appreciated as we are trying to ship this service in the next day or so.

Related

Cannot locate Microsoft.Office.Interop.Outlook Reference

I have been tasked to convert an Outlook Distribution list to a CSV file.
I have seen some examples online but I can’t find the COM reference.
Question:
Do I need to have Office installed to find the reference?
Does a subscription to Office 365 work as well?
I’m developing this project with VS 2022, and .NET 6
Thank you!
First of all, there are several ways to get get distribution list members. If you deal with Exchange profiles only you may consider using EWS, see Expanding a distribution list by using the EWS Managed API 2.0 for more information.
Another possible option is Graph API. Distribution lists are actually represented by the group entity in Microsoft Graph, so in your case you should be able to use the id returned from your people search in the following to get the group/DLs members
GET https://graph.microsoft.com/v1.0/groups/{id}/members
You could just search for your DL by filtering on the group entity:
GET https://graph.microsoft.com/v1.0/groups?$filter=displayName eq 'DL_NAME'
The people API is really about people that you communicate with most often - and it includes users, groups and contacts.
Both EWS and Graph API don't require installing anything on the end-user machine and can be used from the server-side or service software.
The last option is automating Outlook. In that case you need to install the desktop editions of Outlook to get a COM server registered for the application. As soon as COM server is registered you can add an Outlook COM reference.
Does a subscription to Office 365 work as well?
Yes, if it allows installing Outlook on your machine.

How to go about it: sync/export data for Accounts from Microsoft Dynamics 365 CRM and show it in a 3rd party web app? Using WS and ASP.NET MVC/C#

I'm trying to get data from Microsoft Dynamics 365 CRM, specifically the Accounts and their data to show it in my own web app that I will build using ASP.NET MVC and C#.
How would I go about doing this so that my web app will instantly be updated when the data in CRM changes? I find it difficult enough navigating through the Dynamics platform already, thanks Microsoft.
The app would work like this:
When run, the app would get the initial data, and establish a real-time connection with WS to the CRM to get further new data/changes.
the app will display this data in a table.
When a change is detected, the web app should update without refreshing the page.
individual table rows will be colored according to number of contacts and if they lack any contact data.
I've started researching webhooks with MS CRM, but it seems Visual Basic is crapping out on me a lot and I cant get the tools to work properly . I think that I have to establish a connection somehow with WebSocket to the CRM, I just don't know which technologies to use and what plugins there are, seeing I'm new to ASP.NET MVC and C#.
Anyway, I just don't know where to start. Could someone send me in the right direction? I would greatly appreciate it!
You can access the data inside a Dynamics 365 / Power Apps instance (also known as Dynamics CRM or Dynamics 365 CE) using the APIs provided by the system.
You can leverage these APIs using the SDK provided by Microsoft (this one https://www.nuget.org/packages/Microsoft.CrmSdk.XrmTooling.CoreAssembly/ or this one in preview for .NET Core https://www.nuget.org/packages/Microsoft.PowerPlatform.Dataverse.Client/) or by calling the API directly inside the language of your choice.
Usually you need to deal with CRUD events, and the APIs can do that. In your question you mention "the web app should update without refreshing the page" so you will need to take a look at webhooks (here a doc page https://learn.microsoft.com/en-us/dynamics365/customerengagement/on-premises/developer/use-webhooks) handle them in your application and see if they fit your requirements.

Authenticate an EWS application - what's the next step

I'm using EWS in a Windows Service to access different users calenders. Since office 365 basic authentication is deprecated I need to add support for OAuth. I followed the steps in this link Authenticate an EWS application by using OAuth and it works fine. However, my application is used by many customers and what I don't understand is what my customers are supposed to do. Do they also have to add my application in their 365 account? I was under the impression that a customer could find my app in a global directory or something, but I can't find any information about it.

Read emails from exchange online (Office 365) through windows forms application

I am trying to read emails from my O365 mailbox through a windows forms application. I want my application to read emails from O365 mailbox using my username and password.
Is it possible to access the O365 api without registering the application on the Azure? (only using user credentials)
I followed this article on msdn, https://msdn.microsoft.com/en-us/library/office/dn567668(v=exchg.150).aspx
I have an issue in this line:
result = context.AcquireToken(resourceId, ClientID, _returnUri); // parameters are no longer valid in this method
Yes, you can do with with Exchange web service API. It is designed for client application. Follow the link, you can find a lot of examples.
One note is: to create the service client, you need specify the version of the Exchange Server, it should be ExchangeVersion.Exchange2013_SP1 for exchange online.
ExchangeService service = new ExchangeService(ExchangeVersion.Exchange2013_SP1);
(Second) UPDATE:
As of March 18, 2021 - the retirement of Exchange Web Services basic authentication has been placed on hold until further notice. Please see the latest attached link.
UPDATE - Exchange Online deprecating Basic Authentication
(First) UPDATE:
Microsoft announced on the 3rd April 2020, that in light of the current COVID-19 crisis, Exchange Web Services would continue to operate as current until the second half of 2021 for tenants still actively using it.
We will continue to disable Basic Authentication for newly created
tenants by default and begin to disable Basic Authentication in
tenants that have no recorded usage starting October 2020
Basic Authentication and Exchange Online - April 2020 Update
The below post still applies with respect to the changes, it has just been postponed with no precise date. See the link above for full details.
ORIGINAL:
Given how this is a fairly popular question appearing quite high up on Google search rankings, it's probably worth noting that there is only 12 months left (at the time of writing) to use the Exchange Web Services before it is retired.
The preferred method to connect to these services is through OAuth.
Q: Will my application stop working when you make this change?
A: It might, yes, it depends on the app itself and how it was coded.
If it’s using EWS, and if it’s using Basic authentication then yes, on
October 13th 2020 it will fail to connect. However, if the app is
using Modern Auth/OAuth, then no, it will keep working as it did
before.
Upcoming changes to Exchange Web Services (EWS) API for Office 365
For anyone currently using the above method by Matt for Office 365 mail services, this will apply.
Anyone using on-prem exchange services remains unaffected.

Getting started with silverlight/facebook development

Is there any very simple sample applications to get started with facebook dev?
I just want to know how I would connect to facebook through silverlight, get the authentication stuff out of the way and then develop, debug and test my applications.
Do I need to be connected to a server which connects to facebook or can I do the development from my own PC which can 'talk' to facebook?
I'm also a bit worried about the updating APIs. Some of hte samples seem a bit old? I'd really like something for the latest version of silverlight/facebook API...
We are working on posting some silverlight samples to the Facebook C# SDK on Codeplex in the next week or so. You can find that SDK at http://facebooksdk.codeplex.com or http://www.microsoft.com/facebook. We will have an in browser and out of browser sample. For now, we have other samples on there that you can look at. For the most part the SDK works the same on any .Net platform.
I've been working on a SL application with facebook integration that utilizes. I use the JavaScript SDK to log the user in, then pass the access_token into my SL app via a ScriptableMember method. I then use the FacebookApp constructor that takes an access token to create a new Facebook App object. Then I can make my calls directly from the SL app, without the need for a server-side proxy.
One thing to note, in your Facebook applicaiton settings, just enter http://localhost/ without the port for your site address.
I'm eagerly awaiting a little more guidance from Nathan, as he's a developer of the C# SDK

Categories