使用 Office.context.mailbox.displayNewMessageForm 时需要身份验证的外部系统附加文件
Attaching files from external systems which require authentication when using Office.context.mailbox.displayNewMessageForm
我正在使用 Office.context.mailbox.displayNewMessageForm 创建一个新的邮件对话框并传递一个附件 URL。看起来是 Office 服务器去检索文件而不是客户端,所以我实际取回的是我的服务器的登录屏幕。客户端已经通过外部系统的身份验证,可以在没有登录提示的情况下打开文件。
为了解决这个问题,我想我会建立一个代理,我在其中发送 clientid、clienttoken 等并在我的后端系统上验证身份验证,然后检索附件并将其传回请求机器。这可以正常工作,除了似乎对可以传递给附件参数的 URI 的大小有限制,因为我收到错误:
Sys.ArgumentOutOfRangeException: 一个或多个附件 URL 太长。
如何附加不在所有包含的 Microsoft 宇宙中的 URL 附件?
我在另一个帖子中看到有关于从 base64 附加的讨论,但我认为它从未发布过。
非常感谢
Office.context.mailbox.displayNewMessageForm
的附件 URL 应该是不需要身份验证的 URL。因此,它可以是可公开访问的 URL,也可以是通常可在私有网络内访问的 URL,只要用户在该网络内即可。另请注意,在 OWA 中,Exchange 后端必须能够访问附件才能附加文件。
在我们的 JavaScript API 库中,我们对 URL 有 2048 个字符的限制。这是因为我们传统上支持多种浏览器,包括最大路径长度为 2048 个字符的 Internet Explorer。更多信息 here。此外,2048 个字符是确保 URL 在每个客户端和服务器上正常工作的通用 Web 指南,因此您必须将 URL 保持在该限制内。
如果您想使用 base64 附加文件,我们在 2 年多前(2019 年 9 月)在 Requirement Set 1.8 中发布了 API Office.context.mailbox.item.addFileAttachmentFromBase64Async
。请尝试一下,看看这是否对您的场景有帮助。
我正在使用 Office.context.mailbox.displayNewMessageForm 创建一个新的邮件对话框并传递一个附件 URL。看起来是 Office 服务器去检索文件而不是客户端,所以我实际取回的是我的服务器的登录屏幕。客户端已经通过外部系统的身份验证,可以在没有登录提示的情况下打开文件。
为了解决这个问题,我想我会建立一个代理,我在其中发送 clientid、clienttoken 等并在我的后端系统上验证身份验证,然后检索附件并将其传回请求机器。这可以正常工作,除了似乎对可以传递给附件参数的 URI 的大小有限制,因为我收到错误:
Sys.ArgumentOutOfRangeException: 一个或多个附件 URL 太长。
如何附加不在所有包含的 Microsoft 宇宙中的 URL 附件?
我在另一个帖子中看到有关于从 base64 附加的讨论,但我认为它从未发布过。
非常感谢
Office.context.mailbox.displayNewMessageForm
的附件 URL 应该是不需要身份验证的 URL。因此,它可以是可公开访问的 URL,也可以是通常可在私有网络内访问的 URL,只要用户在该网络内即可。另请注意,在 OWA 中,Exchange 后端必须能够访问附件才能附加文件。
在我们的 JavaScript API 库中,我们对 URL 有 2048 个字符的限制。这是因为我们传统上支持多种浏览器,包括最大路径长度为 2048 个字符的 Internet Explorer。更多信息 here。此外,2048 个字符是确保 URL 在每个客户端和服务器上正常工作的通用 Web 指南,因此您必须将 URL 保持在该限制内。
如果您想使用 base64 附加文件,我们在 2 年多前(2019 年 9 月)在 Requirement Set 1.8 中发布了 API Office.context.mailbox.item.addFileAttachmentFromBase64Async
。请尝试一下,看看这是否对您的场景有帮助。