更新事件不适用于 EWS 访问被拒绝
Posted
技术标签:
【中文标题】更新事件不适用于 EWS 访问被拒绝【英文标题】:Update event does not work with EWS Access Denied 【发布时间】:2016-03-02 13:28:46 【问题描述】:我正在使用 EWS 从应用程序创建会议。有肥皂请求
"body":
"m:CreateItem":
"attributes":[
"SendMeetingInvitations":"SendToAllAndSaveCopy"
],
"m:Items":[
"t:CalendarItem":
"t:Subject":"Booked from application",
"t:Body":
"attributes":[
"BodyType":"Text"
],
"value":"Meeting body"
,
"t:Start":"2016-03-02T13:11:59+00:00",
"t:End":"2016-03-02T13:45:00+00:00",
"t:Location":"room1",
"t:RequiredAttendees":[
"t:Attendee":
"t:Mailbox":
"t:EmailAddress":"room1@testdomain.onmicrosoft.com"
]
]
,
"headers":
"Authorization":"Basic somestringsdafsdfsdfsdfsdfsf"
,
"additionalNamespaces":[
"xmlns:m=\"http://schemas.microsoft.com/exchange/services/2006/messages\"",
"xmlns:t=\"http://schemas.microsoft.com/exchange/services/2006/types\""
],
"soapHeader":
"t:ExchangeImpersonation":
"t:ConnectingSID":
"t:PrincipalName":"test007@testdomain.onmicrosoft.com"
,
"method":"POST",
"url":"https://outlook.office365.com/EWS/Exchange.asmx"
我也在尝试通过应用程序编辑会议持续时间,它也可以正常工作。使用 SOAP 请求:
"body":
"m:UpdateItem":
"attributes":[
"SendMeetingInvitationsOrCancellations":"SendToAllAndSaveCopy"
,
"MessageDisposition":"SaveOnly"
,
"ConflictResolution":"AlwaysOverwrite"
],
"m:ItemChanges":
"t:ItemChange":
"t:ItemId":
"attributes":[
"Id":"AAApAHJvb20xQGNlcnR1c2ludGVybmF0aW9uYWwub25taWNyb3NvZnQuY29tAEYAAAAAAMWslF/s3JlHvuBz+Grw4nkHAMq37IYLqfhKh5oHo2fodacAAAAAAQ0AAMq37IYLqfhKh5oHo2fodacAAFweeHQAAA=="
,
"ChangeKey":"DwAAABYAAADKt+yGC6n4SoeaB6Nn6HWnAABcIvBS"
]
,
"t:Updates":
"t:SetItemField":
"t:FieldURI":
"attributes":[
"FieldURI":"calendar:End"
]
,
"t:CalendarItem":
"t:End":"2016-03-02T15:00:00+00:00"
,
"headers":
"Authorization":"Basic somestringssdasasfasfasfasfaf"
,
"additionalNamespaces":[
"xmlns:m=\"http://schemas.microsoft.com/exchange/services/2006/messages\"",
"xmlns:t=\"http://schemas.microsoft.com/exchange/services/2006/types\""
],
"soapHeader":
"t:ExchangeImpersonation":
"t:ConnectingSID":
"t:PrincipalName":"test007@testdomain.onmicrosoft.com"
,
"method":"POST",
"url":"https://outlook.office365.com/EWS/Exchange.asmx"
当我使用 Exchange Web 界面从 outlook.office.com 创建会议时,问题就开始了。我收到错误消息:
访问被拒绝。检查凭据并重试。,无法从中获取 ID 名字。
除了更改键之外,SOAP 请求是相同的。我读过一些类似的问题,这可能是由于日历上的权利。我不太清楚。
您能否就这个问题提出建议。
编辑:
"t:ExchangeImpersonation":
"t:ConnectingSID":
"t:PrimarySmtpAddress":"test007@testdomain.onmicrosoft.com"
【问题讨论】:
【参考方案1】:您的模拟标头可能是您尝试访问的邮箱 test007 还是您使用的服务帐户?
我建议您使用 PrimarySMTPAddress 来确保您指定要访问的邮箱而不是用户,例如
"t:ExchangeImpersonation":
"t:ConnectingSID":
"t:PrimarySmtpAddress":"test007@testdomain.onmicrosoft.com"
当你说
当我使用 Exchange Web 界面从 outlook.office.com 创建会议时,问题就开始了。我收到消息错误
您的意思是您在 Outlook Web App 或您的代码中遇到错误?
干杯 格伦
【讨论】:
问题出在我的应用程序中,当尝试更新通过 Outlook 创建的会议时。在我的应用程序中创建的会议可以毫无错误地更新。谢谢。 这听起来像是您尝试更新约会而不是您的代码不是所有者,为什么使用 PrimarySMTP 是一个更好的主意,在共享邮箱的情况下,您可能需要查看 Organizer的任命,然后模拟特定的组织者。 请检查我的编辑。它报告与您建议的更改相同的错误。谢谢。 我想我可能知道为什么这不起作用。你能检查我上次的编辑吗?谢谢。以上是关于更新事件不适用于 EWS 访问被拒绝的主要内容,如果未能解决你的问题,请参考以下文章