Mic*_*gel 5 c# microsoft-graph-api
我目前正在使用 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
}
);
Run Code Online (Sandbox Code Playgroud)
我收到通知,并且可以读取发送到通知 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; }
}
Run Code Online (Sandbox Code Playgroud)
是否有一个我可以用于此目的的对象或我可以在 Graph SDK 中实现它的任何其他方式。
小智 1
目前 SDK 中不存在此功能。SDK是根据API服务(https://graph.microsoft.com/v1.0/$metadata)提供的元数据生成的,并且那里没有定义通知对象。
我相信这将为图书馆带来巨大的扩展。您愿意向 Microsoft.GraphModels>Extensions文件夹提出拉取请求吗?这将允许其他人使用您创建的通知类。
| 归档时间: |
|
| 查看次数: |
704 次 |
| 最近记录: |