Facebook c#sdk登录和发布访问令牌到服务器

时间:2012-11-06 05:25:46

标签: facebook-graph-api facebook-javascript-sdk facebook-c#-sdk

我正在使用javascript sdk登录并将accessstoken发布到服务器,如facebook c#sdk入门页面所述。我遇到了一些问题。

  1. 它使用auth.authResponseChange,每次触发都会导致重定向循环
  2. 如果我将其更改为auth.login,则只有在用户通过我的网站登录时才会调用它。如果他们已经登录fb,则无效。
  3. 我如何只将一次发送回服务器并将其存储在会话中?
  4. 如果我在服务器上使用oauth身份验证,是否可以将访问令牌传递回javascript sdk?

    FB.Event.subscribe('auth.authResponseChange', function(response) {
        if (response.status === 'connected') {
            // the user is logged in and has authenticated your
            // app, and response.authResponse supplies
            // the user's ID, a valid access token, a signed
            // request, and the time the access token 
            // and signed request each expire
            var uid = response.authResponse.userID;
            var accessToken = response.authResponse.accessToken;
    
            // TODO: Handle the access token
            // Do a post to the server to finish the logon
            // This is a form post since we don't want to use AJAX
            var form = document.createElement("form");
            form.setAttribute("method", 'post');
            form.setAttribute("action", '/FacebookLogin.ashx');
    
            var field = document.createElement("input");
            field.setAttribute("type", "hidden");
            field.setAttribute("name", 'accessToken');
            field.setAttribute("value", accessToken);
            form.appendChild(field);
    
            document.body.appendChild(form);
            form.submit();
    
        } else if (response.status === 'not_authorized') {
            // the user is logged in to Facebook, 
            // but has not authenticated your app
        } else {
           // the user isn't logged in to Facebook.
        }
    });
    

0 个答案:

没有答案