我正在尝试编写服务以在日历事件发生时执行操作。即在15分钟内预约到期。多个用户需要能够注册该服务。我认为订阅是我需要的,尽管" ChageType"用来获取警报,我还没有到达。现在我得到" MSA请求不支持Exchange Online资源。" 当我尝试使用此代码时。我正在使用outlook.com帐户。
GraphServiceClient graphClient = SDKHelper.GetAuthenticatedClient();
var subscription = new Microsoft.Graph.Subscription();
subscription.ChangeType = "updated";
subscription.ExpirationDateTime = System.DateTime.UtcNow.AddDays(1);
subscription.ClientState = System.Guid.NewGuid().ToString();
subscription.NotificationUrl = "https://mywebhook.azurewebsites.net/api/send/myNotifyClient"; // must be valid and able to verify?
subscription.Resource = "me/events";
var newsub = await graphClient.Subscriptions
.Request().AddAsync(subscription);
答案 0 :(得分:0)
nugget包支持 Outlook.com 的订阅:Microsoft.Office365.OutlookServices-V2.0 包装Outlook365 API。
https://msdn.microsoft.com/en-us/office/office365/api/notify-rest-operations
我得到了它的工作 - 有点使用: https://github.com/jasonjoh/dotnet-tutorial 结合: aspnet-webhooks-rest-sample
到目前为止,我可以使用MVC应用程序创建订阅并捕获用户信息+客户端状态;在webhook我可以捕获客户端状态和订阅ID以及更改类型和资源ID:
https://outlook.office.com/api/v2.0/Users('0003bffd-a898-60b1-0000-000000000000@84df9e7f-e9f6-40af-b435-aaaaaaaaaaaa')/Messages('AQMkADAwATNiZmYAZC1hODk4LTYwYjEtMDACLTAwCgBGAAADhL94GyFZe0WMH6_2kacBNAcAVYqcEoTpoEy-bsETzU244wAAAgEKAAAAVYqcEoTpoEy-bsETzU244wAAAFP_o9AAAAA=')
不幸的是,没有关于"项目"的信息。提供。
更新:使用来自MVC 5 application - implement OAuth Authorization code flow的信息我能够获得"授权码流"工作 - 仍然需要弄清楚如何使用access_token验证OWIN(因此MVC应用程序具有登录标识)。
答案 1 :(得分:-1)
目前不支持在多个资源上使用MS帐户进行订阅。相反,邮箱必须使用“工作或学校”帐户。
有关详细信息,请参阅https://stackoverflow.com/a/41026203/270142。