在redirect_uri microsoft应用程序Live SDK JavaScript库

时间:2016-03-15 05:15:04

标签: javascript ruby-on-rails outlook live-sdk

我正在构建一个功能,用户可以通过hotmail,outlook,实时电子邮件导入他的联系人。

我正在使用Live SDK javascript库使其成为可能,我必须创建一个新应用并设置重定向网址。当用户触发操作时,浏览器会提示用户登录的窗口自动访问联系人信息。

我有以下uri结构:

www.example.com/pools/12
www.example.com/pools/13
www.example.com/pools/{pool_id}

我将重定向uri设置为www.example.com,因此当我触发事件时,浏览器会提示一个窗口,其中包含以下错误:

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.

但如果我将重定向uri从microsoft开发人员中心更改为:

www.example.com/pools/12

然后从此页面再试一次,代码完美无缺。

我需要设置重定向uri来接受所有类型的uri,我也尝试使用正则表达式,但运气不好。这是我使用的代码

<%= content_for :javascript do %>
  <script src="//js.live.net/v5.0/wl.js"></script>
  <script type="text/javascript">
    WL.init({
      client_id: '<%= ENV["LIVE_CLIENT"] %>',
      scope: ["wl.basic", "wl.contacts_emails"],
      response_type: "token"
    });

    $("#import-contacts-live").on("click", function(event) {
      event.preventDefault();
      WL.login({
        scope: ["wl.basic", "wl.contacts_emails"],
        redirect_uri: '<%= request.original_url %>',
      }).then(function (response){
        WL.api({
          path: "me/contacts",
          method: "GET"
        }).then(function (response) {
          console.log(response.data);
        },
        function (responseFailed) {
          console.log(responseFailed);
        });
      },
      function (responseFailed){
        console.log("Error signing in: " + responseFailed.error_description);
      });
    }); 
  </script>
<% end %>

0 个答案:

没有答案