Microsoft.Graph订阅 - MSA请求不支持Exchange Online资源

时间:2017-01-12 01:27:50

标签: microsoft-graph

我正在尝试编写服务以在日历事件发生时执行操作。即在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);

2 个答案:

答案 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