OneDrive FilePicker“输入参数'redirect_uri'的提供值无效”

时间:2015-04-30 16:39:34

标签: javascript onedrive

我花了很多时间搜索并试图找到解决方案,到目前为止还没有成功。

我正在尝试按照https://dev.onedrive.com/sdk/javascript-picker-saver.htm#opening-files-on-onedrive

实现一个简单的OneDrive文件选择器

但是我不断收到错误

https://login.live.com/err.srf?lc=1033#error=invalid_request&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.&state=redirect_type%3dauth%26display%3dpage%26request_ts%3d1430410948914%26response_method%3durl%26secure_cookie%3dfalse

我最近尝试过使用localhost的不同选项,但即使我将页面加载到一个简单的域上,我也会得到相同的消息。

我尝试过重定向网址的变体 - 似乎没有效果。

我的网页:

<html>
<head>
    <title>OneDrive</title>
    <script type="text/javascript" src="https://js.live.net/v5.0/OneDrive.js" id="onedrive-js"
            client-id="00000000xxxxxxxx"></script>
    <script type="text/javascript">
        function ShowOnedrivePicker() {
            var oneDrivePickerOptions = {
                success: function (files) {
                    alert( files[0].link + "  name:" + files[0].name);
                },
                cancel: function () {
                    // handle when the user cancels picking a file
                },
                linkType: "webViewLink",
                multiSelect: false
            }
            OneDrive.open(oneDrivePickerOptions);
        }
    </script>
</head>
<body>
    <button onclick="ShowOnedrivePicker()">One Drive Picker</button>
</body>
</html>

我已注册并拥有客户端ID,并且已在API设置中尝试过重定向网址的变体,例如mydomain.com,www.mydomain.com和www.mydomain.com/redirect,但没有成功。< / p>

虽然我之前在Stack Overflow中找到了许多好的解决方案,但这是我第一次提出问题。谢谢。

5 个答案:

答案 0 :(得分:1)

我有一个类似的问题,使用Xamarin中的AzureSDK以及解决了我的问题是在重定向网址中,在Microsoft Developer帐户页面中,我指定了#34; http&#34;。我将其更改为&#34; https&#34;它运作得很好。

https://azure.microsoft.com/en-us/documentation/articles/app-service-mobile-how-to-configure-microsoft-authentication/

https://account.live.com/developers/applications/index

答案 1 :(得分:1)

我已经解决了,当您在https://apps.dev.microsoft.com/上配置重定向URI时,必须在最后添加“/ signin-microsoft”。

示例:http://localhost:9000/signin-microsoft

答案 2 :(得分:1)

我在这里遵循这些说明

https://docs.microsoft.com/en-gb/onedrive/developer/controls/file-pickers/js-v72/open-file

我尝试了一些不同的东西,但对我有用的只是使redirect_url与文件选择器打开的url相同。因此,如果我从主页打开选择器,重定向URL也是主页。似乎在免费计划中使用localhost和azure web应用程序。这是我用过的网址的一个例子......

enter image description here

答案 3 :(得分:0)

@daspek我认为让用户在不同的回调URL上进行身份验证是有意义的。主要原因是OneDrive按钮可以简单地用在匿名用户无法访问的站点的管理站点上。

我目前正在为Drupal实现一个新的插件,动态创建内容类型,URL路径如下所示:

node / add / [type]其中[type]可以是文章,页面或任何其他名称。因此,为了能够使用OneDrive选择器插件,我必须将所有这些链接添加到应用程序设置。

此按钮在第二次和第N次点击时也不能正常工作。首先点击按钮会触发弹出窗口,但下面的点击不会。

我今天能够验证问题:https://dev.onedrive.com/sdk/javascript-picker-saver.htm我使用的是最新版本的Chrome。

答案 4 :(得分:0)

我正在努力解决同样的问题,最终我找到了解决方案。

  1. 开发环境
    • 您必须将“假”域映射到localhost
    • 127.0.0.1 www.my-project-localhost.sk(在主机文件中)
    • 在Microsoft Applications设置中,您必须提供重定向网址,在这种情况下应该像http://www.my-project-localhost.sk
    • 如果您正在运行Rails项目,因此您的应用程序在端口3000上运行,您应该将此端口提供给重定向网址,因此您的重定向网址应该像http://www.my-project-localhost.sk:3000