0
你好我試圖讓我的應用程序通過Facebook登錄,並比我想獲得一些信息與我得到的訪問令牌。阿賈克斯呼叫發送訪問令牌失敗
我想將訪問令牌從facebook js sdk傳遞給服務器上的webmethod以供我稍後使用,但呼叫失敗。
這裏是我的aspx:
<html>
<head>
<title>Facebook Login Authentication Example</title>
<script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
<script>
// Load the SDK Asynchronously
(function (d) {
var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0];
if (d.getElementById(id)) { return; }
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/en_US/all.js";
ref.parentNode.insertBefore(js, ref);
}(document));
// Init the SDK upon load
window.fbAsyncInit = function() {
FB.init({
appId: '474928559284763', // App ID
channelUrl: '//' + window.location.hostname + '/channel', // Path to your Channel File
status: true, // check login status
cookie: true, // enable cookies to allow the server to access the session
xfbml: true // parse XFBML
});
// listen for and handle auth.statusChange events
FB.Event.subscribe('auth.statusChange', function (response) {
if (response.authResponse) {
// user has auth'd your app and is logged into Facebook
var dataString = JSON.stringify({ access_T: response.authResponse.accessToken });
alert(dataString);
$.ajax({
type: "POST",
async: false,
url: "Default2.aspx/save_access_token",
data: dataString,
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
},
error: function (result) {
alert(result.d);
}
});
FB.api('/me', function (me) {
if (me.name) {
document.getElementById('auth-displayname').innerHTML = me.name;
}
})
document.getElementById('auth-loggedout').style.display = 'none';
document.getElementById('auth-loggedin').style.display = 'block';
} else {
// user has not auth'd your app, or is not logged into Facebook
document.getElementById('auth-loggedout').style.display = 'block';
document.getElementById('auth-loggedin').style.display = 'none';
}
//here
//
$("#auth-logoutlink").click(function() { FB.logout(function() { window.location.reload(); }); });
});
}
</script>
<h1>
Facebook Login Authentication Example</h1>
<div id="auth-status">
<div id="auth-loggedout">
<div class="fb-login-button" autologoutlink="true" scope="email,user_checkins">Login with Facebook</div>
</div>
<div id="auth-loggedin" style="display: none">
Hi, <span id="auth-displayname"></span>(<a href="#" id="auth-logoutlink">logout</a>)
</div>
</div>
</body>
</html>
,這裏是我的webmethod:
[WebMethod(EnableSession = true)]
public static void save_access_token(string access_T)
{
HttpContext.Current.Session["a_t"] = access_T;
}
編輯:
我檢查,看看是寫在後,在這裏它是:
「呼叫失敗」...錯誤?任何其他信息在這裏提供? – ethorn10
它只是提醒未定義的結果,這意味着它進入錯誤功能 – Dvirski
如果你在本地做這個,你能調試嗎?如果沒有,你可以在你的瀏覽器中使用fiddler或開發者工具來確定發佈的內容嗎? – ethorn10