ajax调用发送访问令牌失败

时间:2013-12-21 23:26:32

标签: c# asp.net facebook-javascript-sdk

您好我试图通过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(EnableSession = true)]
    public static void save_access_token(string access_T)
    {
        HttpContext.Current.Session["a_t"] = access_T;
    }

修改

我检查了帖子上写的内容,现在是:

enter image description here

1 个答案:

答案 0 :(得分:0)

问题解决了。网页形式的东西是不对的,当我开始一个新的工作。