Microsoft graph api 我已设法为新收到的电子邮件创建订阅,但Microsoft Graph API未对此进行通知
我已成功创建订阅,以便在指定的通知URL中获得有关新电子邮件到达的通知。每次调用创建订阅的API时,我都会收到订阅id。但由于某些原因,当我向连接的电子邮件地址发送电子邮件时,Graph API没有发出通知(订阅对象中指定的通知URL) 我承认,在开始时,我没有正确地用HTTP接受的状态代码响应图形通知请求 我读过这个答案,但没有太多的建议。有什么帮助吗 订阅对象Microsoft graph api 我已设法为新收到的电子邮件创建订阅,但Microsoft Graph API未对此进行通知,microsoft-graph-api,Microsoft Graph Api,我已成功创建订阅,以便在指定的通知URL中获得有关新电子邮件到达的通知。每次调用创建订阅的API时,我都会收到订阅id。但由于某些原因,当我向连接的电子邮件地址发送电子邮件时,Graph API没有发出通知(订阅对象中指定的通知URL) 我承认,在开始时,我没有正确地用HTTP接受的状态代码响应图形通知请求 我读过这个答案,但没有太多的建议。有什么帮助吗 订阅对象 Subscription subscription = new Subscription()
Subscription subscription = new Subscription()
{
ChangeType = "updated",
NotificationUrl = "XXNotificationUrlXX",
Resource = "users/" + UserId + "/messages",
ExpirationDateTime = DateTime.UtcNow.AddMinutes(15),
ClientState = ClientStateForNewEmail
};
创作与成功回应
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#subscriptions/$entity",
"id": "7b468a72-f521-43e3-aadc-7133282437f3",
"resource": "users/{UserId}/messages",
"applicationId": "XXAppIdXX",
"changeType": "updated",
"clientState": "XXClientStateXX",
"notificationUrl": "XXNotificationUrlXX",
"expirationDateTime": "2020-07-20T18:27:37.9356913Z",
"creatorId": "44d82a81-a027-473f-92ac-621108163c94",
"latestSupportedTlsVersion": "v1_2"
}
我代表用户使用应用程序,这就是:user/{UserId}/消息的原因
创建代码
var subrslt = await graphServiceClient.Subscriptions.Request().AddAsync(subscription).ConfigureAwait(false);
通知Url代码:
try
{
return _TrialRunService.postrequest(validationToken).Result;//returns Accepted if no error
}
catch (Exception ex)
{
try
{
//Log if any error
}
catch {//To Guarantee Accepted Response(in any case) delivery to Graph Api }
}
return new HttpResponseMessage(HttpStatusCode.Accepted) { Content = new StringContent("") };
无论我方是否出现任何错误,我已尽力保证对Graph API的响应是可接受的。您的订阅是更新的更改类型。因此,只有当有人编辑邮箱中已经存在的电子邮件时,才会触发此消息。
要接收有关新电子邮件的通知,需要“创建”更改类型。您的订阅位于更新的更改类型上。因此,只有当有人编辑邮箱中已经存在的电子邮件时,才会触发此消息。
要接收新电子邮件的通知,需要“创建”更改类型。我已在订阅列表中进行了检查,但未找到任何更改类型。是否需要删除订阅?过期后,我无法在/subscriptions api中找到它们。请共享有关订阅创建的更多代码,好吗?特别是执行请求的部分。不,您不需要删除过期订阅,它们已被删除automatically@baywet我用了“.Result”这有问题吗?由于它是一个web api,我认为它是否同步运行并不重要。我检查了订阅列表,但没有发现任何订阅。是否需要删除订阅?过期后,我无法在/subscriptions api中找到它们。请共享有关订阅创建的更多代码,好吗?特别是执行请求的部分。不,您不需要删除过期订阅,它们已被删除automatically@baywet我用了“.Result”这有问题吗?由于它是一个web api,我认为它是否同步运行并不重要