我一直从windows实时收到这个错误
为输入参数"redirect_uri"提供的值不是有效的预期值为'https://login.live.com/oauth20_desktop.srf'或匹配的URL重定向
为什么我一直收到这个错误。我在windows实时开发者应用中设置了域
在<头部>元素我有
<script src="//js.live.net/v5.0/wl.js"></script>
刚好低于<身体>元素我有
WL.init({
client_id: '{S_AL_WL_CLIENT_ID}', //{S_AL_WL_CLIENT_ID} = phpbb template variable for client_id
redirect_uri: '{AL_BOARD_URL}', //{AL_BOARD_URL} = phpbb template variable for the urlencoded domain name
response_type: 'token',
scope: ["wl.signin", "wl.basic", "wl.birthday", "wl.emails", "wl.work_profile", "wl.postal_addresses"]
});
登录按钮是
<div id="login">
<a href="#"><img src="images/windows_live_connect.png" alt="Windows Live" /></a>
</div>
侦听器
jQuery('#login a').click(function(e)
{
e.preventDefault();
WL.login({
scope: ["wl.signin", "wl.basic", "wl.birthday", "wl.emails", "wl.work_profile", "wl.postal_addresses"]
}).then(function (response)
{
//do something with stuff here. You know brainy type ajaxy stuff to auth a user
},
function (responseFailed)
{
console.log("Error signing in: " + responseFailed.error_description);
});
});
问题是windows live redirect_uri必须是http://www.yourdomain.com
,而不是http://yourdomain.com
。因此,如果用户输入http://yourdomain.com
,则会显示此错误,但如果用户输入了http://www.yourdomain.com
,则脚本可以工作。
我想我已经被Facebook Api宠坏了。
因此,最后我只是使用登录按钮制作了一个正则表达式来匹配任何url,并强制它为www和.htaccess.