2014-02-10 159 views
0

因此,當我嘗試在Asana的API中使用OAuth時,我總是收到一個錯誤。我收到的錯誤是「錯誤找不到路由」。我究竟做錯了什麼?我知道請求很可能是正確的,但我相信它會返回一個哈希URL,我應該解開它。這是我從Facebook OAuth使用的示例代碼,所以也許代碼是不正確的,並且特定於facebook api。Asana Javascript Oauth錯誤找不到路由

這裏是我的代碼:

$(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'); 
    } 
} 

這裏是我的應用程序憑據的照片。我的重定向位置只是本地的,因爲我沒有託管它在服務器上。

app details

回答

1

看起來像你這樣做url = path + query,當你可能需要做url = path + "?" + query - 查詢字符串不分離的,這意味着你最終用於請求不被識別像https://app.asana.com/-/oauth_authorizeclientId=...的路徑:因此, 「找不到路線」。

希望有幫助!

+0

是的!謝謝! – angyxpoo