Facebook Graph API通过JQuery获取访问令牌(客户端方式)

时间:2011-09-05 18:34:02

标签: jquery facebook jsonp facebook-access-token

好的,所以这让我疯了。一直在尝试使用jquery获取我的应用程序的访问令牌。当我有访问令牌时,每个人都工作正常。我可以检索朋友列表等。如果我从我的请求中嗅探URL并将其粘贴到浏览器中,它会按预期执行(给我访问令牌并重定向到我的页面)。

但是......使用以下函数会导致“jQuery15105307047630302168_1315247312743未被调用”或者如果我在“无传输”错误消息中将dataType更改为“JSON”。我一直在阅读一堆帖子,似乎没什么可做的。

有人建议添加?回调?和一个参数,它是回调函数本身,但这给了我完全相同的错误。下面是我打电话来获取访问令牌的功能。

function GetAccessTokenClient() {

var redirURL = "http://banana.ihedge.dk/bet/";
var scope = "user_online_presence"; // user_photos, email, user_birthday, user_online_presence
var clientID = "105719222863801";

try {
    $.ajax({
        type: "GET",
        url: "https://www.facebook.com/dialog/oauth", //"https://graph.facebook.com/oauth/authorize",
        cache: false,,
        dataType: 'JSONP',
        data: "client_id=" + clientID + "&redirect_uri=" + redirURL + "&reponse_type=token",
        error: function(xhr, status, error) {
            alert(error);
        },
        success: function(response) {
            for (key in repsonse)
                alert(key);
        },
        complete: function(request, textStatus) {
            //alert('RESPONSETEXT: ' + request.responseText);
            //alert('COMPLETE: ' + textStatus);
        }
    });
}
catch (Error) {
    alert(Error);
}
}

请帮忙。

1 个答案:

答案 0 :(得分:2)

问题在于尝试使用ajax获取https://www.facebook.com/dialog/oauth,它不是为此而设计的。

使用javascript / jquery获取用户访问令牌的最简单方法是使用FB.Login

FB.login(function(response) {
    if (response.authResponse) {
        var accessToken = response.authResponse.accessToken;
    }
});