Microsoft Graph Rest API: как работает «проверка конечной точки уведомления»? - PullRequest
1 голос
/ 04 февраля 2020

Читая документацию, я вижу, что ... "Клиент должен предоставить ответ со следующими характеристиками в течение 10 секунд:"

  • 200 (ОК) код состояния.
  • Тип содержимого должен быть текстовым / простым.
  • Тело должно включать токен проверки, предоставленный Microsoft Graph.

Запрос, который я получаю от клиента,

/? ValidationToken = Проверка% 3a + Тестирование + клиент + приложение + достижимость + для + подписка + Идентификатор запроса% 3a + ef492401-75e c -4ac8-b87a-89d0b81ae977

Таким образом, ответ, который я даю, является

$responseCode = 200;
http_response_code($responseCode);
header('Content-type: text/plain');
echo $response = $_GET['validationToken'];

Переведено, .. is:

Проверка: проверка доступности клиентского приложения для идентификатора запроса подписки: ef492401-75e c - 4ac8-b87a-89d0b81ae977

Почему я получаю этот ответ?

< HTTP/1.1 400
< {
<     "error": {
<         "code": "InvalidRequest",
<         "message": "Subscription validation request failed. Must respond with 200 OK to this request.",
<         "innerError": {
<             "request-id": "ef492401-75ec-4ac8-b87a-89d0b81ae977",
<             "date": "2020-02-04T14:50:35"
<         }
<     }
< }

1 Ответ

0 голосов
/ 06 февраля 2020

Проблема здесь:

$request["notificationUrl"] = $conf['NotificationURL'];
$request["lifecycleNotificationUrl"] = "https://webhook.azurewebsites.net/api/lifecycleNotifications";

Второй URL в конфигурации не существует. Если вызвано, верните 400. Правильная конфигурация должна быть:

$request["notificationUrl"] = $conf['NotificationURL'];
$request["lifecycleNotificationUrl"] = $conf['NotificationURL'];

Это решит проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...