因此,当我尝试将OAuth与Asana API一起使用时,我一直收到错误消息。我收到的错误是“找不到路由错误”。我究竟做错了什么?我知道请求很可能是正确的,但我相信它返回一个哈希的URL,我应该解开它。这是我在Facebook OAuth中使用的示例代码,因此可能代码不正确且facebook api具体。
这是我的代码:
$(function () {
checkHashLogin();
$('#signon').click(function () {
asanaLogin();
});
})
});
var appID = ****************;
function asanaLogin() {
var path = 'https://app.asana.com/-/oauth_authorize';
var queryParams = ['client_id=' + appID,
'redirect_uri=' + window.location,
'response_type=token'];
var query = queryParams.join('&');
var url = path + query;
window.location.replace(url);
}
function checkHashLogin() {
if (window.location.hash.length > 3) {
var hash = window.location.hash.substring(1);
if(hash.split('=')[0] == 'access_token')
{
var path = "https://app.asana.com/-/oauth_authorize";
var queryParams = [hash, 'callback=displayUser'];
var query = queryParams.join('&');
var url = path + query;
//use jsonp to call the graph
var script = document.createElement('script');
script.src = url;
document.body.appendChild(script);
}
}
}
function displayUser(user) {
setTimeout(function () { }, 1000);
if (user.id != null && user.id != "undefined") {
//Do Stuff
}
else {
alert('user error');
}
}
这是我的应用凭据的照片。我的重定向位置只是本地的,因为我还没有在服务器上托管它。
答案 0 :(得分:1)
当您需要执行url = path + query
时,您似乎正在执行url = path + "?" + query
- 查询字符串未分开,这意味着您最终请求https://app.asana.com/-/oauth_authorizeclientId=...
之类的路径不承认:因此,“找不到路线”。
希望有所帮助!