不,Id
是不透明的。它不基於互聯網消息ID。
Microsoft Graph API不支持向通知有效內容添加字段,但Outlook REST API本身不支持。如果您直接使用Outlook端點(https://outlook.office.com/api/
),則可以使用$select
來獲取通知負載中的其他字段,並使用我們稱之爲「豐富通知」的功能。
文檔瀏覽:https://msdn.microsoft.com/en-us/office/office365/api/notify-rest-operations#subscribe-to-changes-in-my-mail-calendar-contacts-or-tasks
您的訂閱要求將類似於:
{
"@odata.type": "#Microsoft.OutlookServices.PushSubscription",
"Resource": "https://outlook.office.com/api/beta/me/mailfolders/Inbox/messages?$select=Subject,InternetMessageId",
"NotificationURL": "https://mywebapp.contoso.com/notifications",
"ChangeType": "Created,Deleted,Updated",
"ClientState": "Message unread"
}
然後通知將包括與所請求的字段ResourceData
對象。
{
"value": [
{
"@odata.type": "#Microsoft.OutlookServices.Notification",
"Id": null,
"SubscriptionId": "NjkyM0MwM0MtREJERi00MUY5LTlCMkQtQkRFOTREOTlEQ0EwX0ZDQkY1RTIwLUI1M0UtNENEQS05MEQyLTQyMkNBOUI4MkE1Mg==",
"SubscriptionExpirationDateTime": "2017-06-29T20:57:26.3294822Z",
"SequenceNumber": 3,
"ChangeType": "Created",
"Resource": "https://outlook.office.com/api/beta/Users('[email protected]9955f5ef6')/Messages('AAMkAGZjYmY1ZTIwLWI1M2UtNGNkYS05MGQyLTQyMmNhOWI4MmE1MgBGAAAAAACiItQsBUn9QIuhejMqYpj5BwBk23L_AKqTR5R9JLmwxOUMAAAAAAEMAABk23L_AKqTR5R9JLmwxOUMAAC1vTIkAAA=')",
"ResourceData": {
"@odata.type": "#Microsoft.OutlookServices.Message",
"@odata.id": "https://outlook.office.com/api/beta/Users('[email protected]9955f5ef6')/Messages('AAMkAGZjYmY1ZTIwLWI1M2UtNGNkYS05MGQyLTQyMmNhOWI4MmE1MgBGAAAAAACiItQsBUn9QIuhejMqYpj5BwBk23L_AKqTR5R9JLmwxOUMAAAAAAEMAABk23L_AKqTR5R9JLmwxOUMAAC1vTIkAAA=')",
"@odata.etag": "W/\"CQAAABYAAABk23L+AKqTR5R9JLmwxOUMAAC131Ep\"",
"Id": "AAMkAGZjYmY1ZTIwLWI1M2UtNGNkYS05MGQyLTQyMmNhOWI4MmE1MgBGAAAAAACiItQsBUn9QIuhejMqYpj5BwBk23L_AKqTR5R9JLmwxOUMAAAAAAEMAABk23L_AKqTR5R9JLmwxOUMAAC1vTIkAAA=",
"InternetMessageId": "<[email protected]od.outlook.com>",
"Subject": "Testing this"
}
}
]
}
賈森,我試過但訂閱不被接受,導致400「壞資源」。查詢參數似乎不被支持,但將不勝感激!感謝您的支持,並讓我知道您是否有其他想法。 – Sybic2001
啊,是的,我的錯誤。 Graph中的資源不支持'$ select'。但是,如果直接使用Outlook端點,則可以註冊包含此類數據的「豐富通知」。我會編輯我的答案。 –
對不起,打擾你Jason,但一切工作完美的圖端點。如果我嘗試調用https://outlook.office.com/api/ ...端點,則會收到帶有無效標記的401。我不明白的是如何改變這種情況:我的應用在apps.dev.microsoft上註冊,並且我有管理員同意讓它訪問所有郵箱。因此,我沒有指定它是我將使用的圖形或Outlook休息端點。爲什麼令牌對於Outlook休息終點無效? – Sybic2001