我们有一个CMS,可以为超过2000个学校网站提供支持。每个网站的管理站点都在相同的根域下,例如*.myadmin.com
。我们正在努力在所有这些管理网站的多个网页上集成OneDrive File Picker。
API设置中的Redirect URLs
存在问题。我们尝试通过将Root domain
设置为myadmin.com
将Redirect URLs:
字段设置为https://myadmin.com
。在JavaScript中,我们将文件选择器初始化为:
WL.init({
client_id: window.OneDrive.clientId,
redirect_uri: ''
});
WL.fileDialog({
mode: "open",
select: "single"
});
这导致弹出窗口说:
We're unable to complete your request. Microsoft account is experiencing technical problems. Please try again later.
在弹出窗口的地址栏中,还有一个错误说明(网址解码):
error_description=The provided value for the input parameter 'redirect_uri' is not valid. The expected value is 'https://login.live.com/oauth20_desktop.srf' or a URL which matches the redirect URI registered for this client application.
在API设置中设置特定网址(如https://subdomain.myadmin.com/homepage
)可使Picker在 特定页面上工作,但不在其他网页上工作。看起来它正在寻找完全匹配。显然,对于使用OneDrive的每个页面创建单独的应用程序,这是不切实际的。
可以通过在API设置页面上禁用Enhanced redirection security
来解决此问题。几周前我们创建了一个用于开发的应用程序,但被标记为已弃用。今天,当我们为生产创建一个新的应用程序时,它已不再存在,我认为现在已经为所有新应用程序启用了这个应用程序。
Dropbox Drop-ins Chooser也存在类似问题,但我们可以通过将myadmin.com
设置为应用的域来解决问题。
这个问题有解决方法吗?
感谢您的帮助和建议。
答案 0 :(得分:1)
我能让这个工作的唯一方法是
工作副本(链接可能随时被删除) Testing OneDrive in an iframe
其他相关网址
答案 1 :(得分:-1)
只要所有重定向网址都在同一个子域中,您就可以添加多个重定向网址。需要明确指定每个重定向URL:
答案 2 :(得分:-1)
如果您先放置所需的根域,然后放置2个子域,则可以解决Microsoft开发人员控制台提及的错误。
添加3个entires: 1. domain.com 2. sub1.domain.com 3. sub2.domain.com