2013-12-21 38 views
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; 
    } 

編輯:

我檢查,看看是寫在後,在這裏它是:

enter image description here

+0

「呼叫失敗」...錯誤?任何其他信息在這裏提供? – ethorn10

+0

它只是提醒未定義的結果,這意味着它進入錯誤功能 – Dvirski

+0

如果你在本地做這個,你能調試嗎?如果沒有,你可以在你的瀏覽器中使用fiddler或開發者工具來確定發佈的內容嗎? – ethorn10

回答

0

問題解決了。當我開始一個新的工作時,一些網絡表單是不對的。