Запрос проверки подписки не выполнен.Ответ должен точно соответствовать параметру запроса validationToken - PullRequest
0 голосов
/ 26 августа 2018

Подписка Microsoft webhook отправляет странные данные тела, а текст в параметре validationToken отсутствует. Есть ли в команде Microsoft Graph кто-нибудь, кто мог бы помочь?

Это то, что я отправляю (я изменил фактическое доменное имя в notificationUrl для конфиденциальности).

{
    "changeType": "created",
    "notificationUrl": "https://myapp.com/version-test/api/1.1/wf/msgraphvalidation",
    "resource": "me/mailFolders/inbox/messages",
    "expirationDateTime": "2018-08-27T18:23:45.9356913Z"
 }

Это то, что возвращается в теле после отправки POST на "https://graph.microsoft.com/v1.0/subscriptions" или" https://graph.microsoft.com/beta/subscriptions" с вышеуказанной информацией.

Request data
{
    "bold": "\u001b[1m\u001b[22m",
    "underline": "\u001b[4m\u001b[24m",
    "strikethrough": "\u001b[9m\u001b[29m",
    "italic": "\u001b[3m\u001b[23m",
    "inverse": "\u001b[7m\u001b[27m",
    "grey": "\u001b[90m\u001b[39m",
    "black": "\u001b[30m\u001b[39m",
    "yellow": "\u001b[33m\u001b[39m",
    "red": "\u001b[31m\u001b[39m",
    "green": "\u001b[32m\u001b[39m",
    "blue": "\u001b[34m\u001b[39m",
    "white": "\u001b[37m\u001b[39m",
    "cyan": "\u001b[36m\u001b[39m",
    "magenta": "\u001b[35m\u001b[39m",
    "greyBG": "\u001b[49;5;8m\u001b[49m",
    "blackBG": "\u001b[40m\u001b[49m",
    "yellowBG": "\u001b[43m\u001b[49m",
    "redBG": "\u001b[41m\u001b[49m",
    "greenBG": "\u001b[42m\u001b[49m",
    "blueBG": "\u001b[44m\u001b[49m",
    "whiteBG": "\u001b[47m\u001b[49m",
    "cyanBG": "\u001b[46m\u001b[49m",
    "magentaBG": "\u001b[45m\u001b[49m",
    "rainbow": "",
    "zebra": "",
    "stripColors": "",
    "zalgo": ""
}

Вот полная ошибка:

{ 
"error": { 
    "code": "InvalidRequest", 
    "message": "Subscription validation request failed. Response must exactly match validationToken query parameter.",
    "innerError": { 
        "request-id": "08008b1b-4eda-4a09-a0d5-45ffcce1a8d6", 
        "date": "2018-08-26T02:43:08" 
    }
}
}

Ответы [ 3 ]

0 голосов
/ 28 августа 2018

validationToken находится в строке запроса, а не в теле запроса.

0 голосов
/ 30 августа 2018

Похоже, ваша конечная точка уведомления не отвечает токеном проверки из строки запроса. Ответ должен быть просто токеном проверки в текстовом формате.

Не уверен, что это намеренно, но URL-адрес уведомления для отправленного вами запроса не соответствует URL-адресу уведомления, который вы упомянули в этом сообщении.

0 голосов
/ 27 августа 2018

Microsoft Graph проверяет конечную точку уведомления, указанную в свойстве messagesUrl запроса на подписку, перед созданием подписки.см. следующие ссылки

https://developer.microsoft.com/en-us/graph/docs/concepts/webhooks

Microsoft Graph WebHook: пустая подпись проверки подписи?

вы можете проверить URL-адрес уведомления следующим образом

if (Request.QueryString["validationToken"] != null)
            {
                var token = Request.QueryString["validationToken"];
                return Content(token, "plain/text");
            }

https://github.com/microsoftgraph/aspnet-webhooks-rest-sample/blob/master/GraphWebhooks/Controllers/NotificationController.cs

...