我正在尝试将 Exchange Web 服务 (EWS) 与应用程序和 OAuth2 身份验证结合使用。
\n\n我做了什么:
\n\nfull_access_as_app对于 Exchange);作为管理员接受这些权限;https://outlook.office365.com/.default);结果我得到这个:“这种类型的 OAuth 令牌必须存在 ExchangeImpersonation SOAP 标头”。我不明白我应该做什么来解决它。
\n\n即使尝试使用与上面相同的邮箱地址的 ExchangeImpersonate 和 SmtpAddress,但这样我会收到另一个错误“找不到邮箱”。但邮箱是!(在多个邮箱上测试)。
\n\n我的问题是:我对 EWS 做错了什么?
\n\n要求:
\n\nPOST\xc2\xa0https://outlook.office365.com/ews/Exchange.asmx\nAuthorization:\xc2\xa0Bearer\xc2\xa0<token>\nX-AnchorMailbox:\xc2\xa0mailbox@something.onmicrosoft.com\n\n\n<?xml version="1.0" encoding="utf-8"?>\n<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"\nxmlns:xsd="http://www.w3.org/2001/XMLSchema"\nxmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"\nxmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">\n\xc2\xa0\xc2\xa0<soap:Header>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<t:RequestServerVersion Version="Exchange2016"/>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<t:ExchangeImpersonation>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<t:ConnectingSID>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<t:PrimarySmtpAddress>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0mailbox@something.onmicrosoft.com\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0</t:PrimarySmtpAddress>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0</t:ConnectingSID>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0</t:ExchangeImpersonation>\n\xc2\xa0\xc2\xa0</soap:Header>\n\xc2\xa0\xc2\xa0<soap:Body>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<GetAttachment xmlns="http://schemas.microsoft.com/exchange/services/2006/messages"\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0xmlns:t="http://schemas.microsoft.com/exchange/services/2006/types">\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<AttachmentShape/>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<AttachmentIds>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0<t:AttachmentId Id="AAMkADAwNzdjNTg3LTc4M2ItNDE0Yi05MTk4LTQxZDBlYTc1NmMxZgBGAAAAAAAiixtLGariQY7rf5pAKRZZBwBVk8babsuEQ4s2Znfj9fB5AAAAAAEMAABVk8babsuEQ4s2Znfj9fB5AADq3B14AAABEgAQAKZOAcjZCBxHpqvY6XmXp5w="/>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0</AttachmentIds>\n\xc2\xa0\xc2\xa0\xc2\xa0\xc2\xa0</GetAttachment>\n\xc2\xa0\xc2\xa0</soap:Body>\n</soap:Envelope>\nRun Code Online (Sandbox Code Playgroud)\n\n回复:
\n\nErrorNonExistentMailbox\xc2\xa0The SMTP address has no mailbox associated with it.\nRun Code Online (Sandbox Code Playgroud)\n 我使用 Microsoft Graph API 增量查询定期下载一些信息(消息、联系人、事件)。但有时我会收到此错误:
{
"error" :
{
"code" : "SyncStateNotFound",
"innerError" :
{
"date" : "2018-06-01T06:31:24",
"request-id" : "47e918a9-ce5b-42b4-8a86-12b96c93121a"
},
"message" : "The sync state generation is not found; generation=605;[highest=841][841][839][840]."
}
}
Run Code Online (Sandbox Code Playgroud)
我无法为您提供重现步骤,因为我不知道如何重现它。生产环境有时会出现这种情况。
所以我有一些问题:
我想与 Office365 Sharepoint 网站进行交互,因此我尝试为此选择正确的 API。有不同的 API 可用于使用 Sharepoint,这对我来说很有用:Sharepoint REST API 和 Microsoft Graph API for Sharepoint。我应该选择哪一个?它们之间的功能有什么区别吗?
我到底想要做什么:从 Office365 下载/上传到 Office 365 网站集、网站、列表、文件夹、项目、文档;保存来自 Sharepoint 站点的元数据和设置;保存历史记录。
是否可以?如果可以的话,我可以通过什么方式来做呢?
sharepoint office365 microsoft-graph-sites microsoft-graph-api