Я пытаюсь подписаться на уведомления от Outlook Mail API.
Однако я продолжаю получать ошибку 400.
Ref:
msdn.microsoft.com/en-us/office/office365/api/notify-rest-operations
$url = 'outlook.office.com/api/v2.0/me/subscriptions';
$headers = array(
"Authorization: Bearer ".$access_token ,
"Accept: application/json",
"X-AnchorMailbox: ".$user_email
);
$curl = curl_init($url);
$data = '{
"@odata.type":"#Microsoft.OutlookServices.PushSubscription",
"Resource": "outlook.office.com/api/v2.0/me/messages",
"NotificationURL": "mydomain.com/listener.php",
"ChangeType": "Created"}';
$headers[] = "Content-Type: application/json";
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_POSTFIELDS,$data);
$response = curl_exec($curl);
Я еще не настроил своего слушателя. Ошибка 400 из-за слушателя? Или что-то еще?. Похоже, аутентификация прошла успешно
Есть два вопроса с этим запросом на подписку
1 — для уведомлений Outlook / Office365 требуется безопасный канал; Т.е. NotificationURL должен быть «https». Это, вероятно, причина вашей ошибки 400.
2- NotificationURL должен быть запущен, так как служба выполняет проверку этого URL-адреса перед принятием подписки.
Пожалуйста, документы https://msdn.microsoft.com/office/office365/APi/notify-rest-operations или начать концепции https://dev.outlook.com/RestGettingStarted/Concepts/Webhooks для дополнительной информации.
Благодарю.
Других решений пока нет …