Настраиваю push-уведомление с помощью outlook api, сервер написан на nodejs. Это почтовый запрос, который клиент делает для подписки.
POST /api/v2.0/me/subscriptions HTTP/1.1
Host: outlook.office.com
Content-Type: application/json
client-request-id: f7d3812g-dfbz-4eb5-8edg-0f9a3ad716aq
User-Agent: node-outlook/2.0
return-client-request-id: true
X-Anchor-Mailbox: [email protected]
Authorization: Bearer "ACCESS_TOKEN"
Content-Type: application/json
{
"@odata.type":"#Microsoft.OutlookServices.PushSubscription",
"Resource": "https://outlook.office.com/api/v2.0/me/events",
"NotificationURL": "https://mywebsite.azurewebsites.net/push",
"ChangeType": "Created,Deleted,Updated"
}
Затем сервер nodejs отвечает токеном проверки, который был сгенерирован службой уведомлений Outlook.
response.writeHead(200, { 'Content-Type': 'text/plain' });
response.write(validation_token);
response.end();
Затем клиент (который отправил исходный почтовый запрос) получает следующий ответ
{
"@odata.context":"https://outlook.office.com/api/v2.0/$metadata#Me/Subscription/$entity",
"@odata.type": "#Microsoft.OutlookServices.PushSubscription",
"@odata.id": "https://outlook.office.com/api/v2.0/Users('00034001-ffef-f16e-0000-000000000000@74df9q7f-e9s6-40ad-b43w-aaaaaaaaaaaa')/Subscriptions('RERFNkJFNGUsNEE1My00RjFFLUExQkMtQkU1NkQ9OTdDOTlBXzAwMDM0MDAxLUZGRUYtZTE2RS0wMDAwLTAwMDAwMDAwMEAwMA==')",
"Id": "RERFNkJFNGUsNEE1My00RjFFLUExQkMtQkU1NkQ9OTdDOTlBXzAwMDM0MDAxLUZGRUYtZTE2RS0wMDAwLTAwMDAwMDAwMEAwMA==",
"Resource": "https://outlook.office.com/api/v2.0/me/messages",
"ChangeType": "Created, Updated, Deleted, Missed",
"NotificationURL": "https://mywebsite.azurewebsites.net/push",
"SubscriptionExpirationDateTime": "2017-03-30T09:35:37.6586596Z",
"ClientState": null
}
Именно это и должно происходить в документации по Outlook. https://dev.outlook.com/restapi/concepts/webhooks
Этот процесс проверяет NotificationURL для получения push-уведомлений от Outlook. Конечная точка NotificationURL получает ответ от Outlook при создании события, но не тот, который мне нужен !!!
Я должен был ожидать получить что-то вроде этого:
{
"value": [
{
"@odata.type": "#Microsoft.OutlookServices.Notification",
"Id": null,
"SubscriptionId": "Mjk3QNERDQQ==",
"SubscriptionExpirationDateTime": "2015-04-23T22:46:13.8805047Z",
"SequenceNumber": 1,
"ChangeType": "Created",
"Resource" : "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-7d04-b48b-20075df800e5@1717622f-1d94-c0d4-9d74-f907ad6677b4')/Events('AAMkADNkNmAA=')",
"ResourceData": {
"@odata.type": "#Microsoft.OutlookServices.Event",
"@odata.id": "https://outlook.office.com/api/v2.0/Users('ddfcd489-628b-7d04-b48b-20075df800e5@1717622f-1d94-c0d4-9d74-f907ad6677b4')/Events('AAMkADNkNmAA=')",
"Id": "AAMkADNkNmAA="
}
}
]
}
Но вместо этого я получаю что-то вроде этого
{
_readableState:
ReadableState {
objectMode: false,
highWaterMark: 16384,
buffer: BufferList { head: null, tail: null, length: 0 },
length: 0,
pipes: null,
pipesCount: 0,
flowing: null,
ended: false,
endEmitted: false,
reading: false,
sync: true,
needReadable: false,
emittedReadable: false,
readableListening: false,
resumeScheduled: false,
defaultEncoding: 'utf8',
ranOut: false,
awaitDrain: 0,
readingMore: true,
decoder: null,
encoding: null }, .......
И это тело ответа продолжается еще 600 строк.
Я знаю, что там много чего происходит, но мы будем очень благодарны за любые советы или помощь.
readableState
(github.com / nodejs / node / issues / 445). Я предполагаю, что вы сбрасываете не тот объект. - person Jason Johnston   schedule 23.03.2017