Microsoft graph api 我已设法为新收到的电子邮件创建订阅,但Microsoft Graph API未对此进行通知

Microsoft graph api 我已设法为新收到的电子邮件创建订阅,但Microsoft Graph API未对此进行通知,microsoft-graph-api,Microsoft Graph Api,我已成功创建订阅,以便在指定的通知URL中获得有关新电子邮件到达的通知。每次调用创建订阅的API时,我都会收到订阅id。但由于某些原因,当我向连接的电子邮件地址发送电子邮件时,Graph API没有发出通知(订阅对象中指定的通知URL) 我承认,在开始时,我没有正确地用HTTP接受的状态代码响应图形通知请求 我读过这个答案,但没有太多的建议。有什么帮助吗 订阅对象 Subscription subscription = new Subscription()

我已成功创建订阅,以便在指定的通知URL中获得有关新电子邮件到达的通知。每次调用创建订阅的API时,我都会收到订阅id。但由于某些原因,当我向连接的电子邮件地址发送电子邮件时,Graph API没有发出通知(订阅对象中指定的通知URL)

我承认,在开始时,我没有正确地用HTTP接受的状态代码响应图形通知请求

我读过这个答案,但没有太多的建议。有什么帮助吗

订阅对象

    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,我认为它是否同步运行并不重要