如何在具有动态网址和子网域的Web应用程序中使用OneDrive的选择器?

时间:2016-07-21 11:59:40

标签: onedrive

我想将Onedrive文件选择器添加到我的Web应用程序中。但是我遇到了与重定向网址相关的问题。

我的网站是一个软件即服务网络应用程序。我们有数百个客户端,每个客户端都在一个子域中。我想将文件选择器添加到多个页面。每个页面的网址都会有所不同,因为它们是动态网页,网址上有ID。

像这样:

client1.mydomain.com/page/1 client1.mydomain.com/page/2 client2.mydomain.com/page/3 client2.mydomain.com/page/4 client3.mydomain.com/page/5

因此,我们拥有无限数量的子域名,每个子域名都包含无限数量的网页,其中网址都不同。

此外,我可以在App Registration门户中设置的页数限制为21.有数千个可供选择器使用的地方。

解决方案?如何在包含动态网址和多个子网域的网页中使用OneDrive的Picker?

1 个答案:

答案 0 :(得分:0)

这是OneDrive / OneDrive for Business身份验证平台的限制。为了将文件选择器与特定于租户的URL一起使用,您需要做一些额外的工作。

基本上,您需要:

  1. 拥有一个域,您可以在其中托管提供文件选择器交互的单页应用(SPA)。像filepicker.myapp.com这样的东西。在此页面上,您使用文件选择器SDK和您的应用程序ID进行身份验证,让用户选择一个文件,然后重定向回filepicker.myapp.com上的页面。您可以使用openInNewWindow = false属性来确保SPA应用程序不会创建弹出窗口。
  2. 从那里,您可以从每个租户应用中调用您的SPA。您的租户应用程序会创建一个新的弹出窗口,调用SPA应用程序,并使用postMessage()或查询字符串在您的租户应用程序和SPA之间进行通信。这是从租户应用程序到文件选择器SPA的移交,以及您的SPA将挑选文件的结果发送回租户应用程序的方法。
  3. 这绝对是一个痛点,我们正在研究如何使身份验证平台对于具有基于租户的URL的应用程序更加健壮,但是我们没有任何坚定的承诺,我们什么时候会有更好的可用性