我目前正在使用 Graph SDK 实现 Webhook,但遇到了一些小问题/不便。我正在订阅这样的用户资源的日历事件:
var request = GraphClientInitializer.Instance.GraphClient.Subscriptions.Request();
var result = await request.AddAsync(
new Subscription
{
ChangeType = WebhookConsts.SubscriptionChangeType,
NotificationUrl = WebhookConsts.SubscriptionNotificationUrl,
Resource = "/users/" + UserMail + "/" + "events",
ExpirationDateTime = DateTimeOffset.Now.AddMinutes(20),
ClientState = WebhookConsts.SubscriptionIdentifier
}
);
我收到通知,我可以读取发送到通知 url 的消息,但 SDK 中似乎没有一个对象可以解析收到的通知。
目前我自己做:
public class Notification
{
[JsonProperty("value")]
public List<NotificationValue> Values { get; set; }
}
public class NotificationValue
{
[JsonProperty("subscriptionId")]
public String SubscriptionId { get; set; }
[JsonProperty("subscriptionExpirationDateTime")]
public String SubscriptionExpirationDateTime { get; set; }
[JsonProperty("clientState")]
public String ClientState { get; set; }
[JsonProperty("changeType")]
public String ChangeType { get; set; }
[JsonProperty("resource")]
public String Resource { get; set; }
[JsonProperty("resourceData")]
public NotificationResourceData ResourceData { get; set; }
}
public class NotificationResourceData
{
[JsonProperty("@odata.type")]
public String ODataType { get; set; }
[JsonProperty("@odata.id")]
public String ODataId { get; set; }
[JsonProperty("odata.etag")]
public String ODataEtag { get; set; }
[JsonProperty("Id")]
public String Id { get; set; }
}
是否有一个对象我可以用于这个或我可以在 Graph SDK 中实现它的任何其他方式。
最佳答案
更新:此功能已在 PR #1053 中实现现在可以通过类 ChangeNotificationCollection 获得.
关于c# - Graph SDK 中的订阅通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49534591/