在Facebook页面选项卡应用程序中获取身份验

时间:2012-03-12 21:06:05

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

我想在Facebook开发一个页面标签应用程序

直到现在我一直使用asp.net开发了画布页面应用程序,所以这将是我的第一页标签应用程序

我仍然无法获取用户信息和好友列表的身份验证请求

我使用了由computerbeacon开发的Facebook图形工具包dll,但它没有解决我的页面标签问题

任何c#或JavaScript源代码都可以帮助我,我可以使用jssdk或C#sdk,但我只是想要一个示例或链接,我可以在页面选项卡应用程序中了解这是如何实现的


我把这段代码放到我的页面上,但它说FB没有定义 如果我把connect.Facebook,all.js放到head部分这次它说fb.login在fb.init之前调用它并且dowsnt以两种方式显示权限窗口

<body>
 <div id="fb-root"></div> 
  <script>
    window.fbAsyncInit = function () {
    FB.init({
        appId: '396868406993330', // App ID 

        status: true, // check login status 
        cookie: true, // enable cookies to allow the server to access the session 
        xfbml: true  // parse XFBML 
    });

    // Additional initialization code here 
};

// 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)); 
 </script> 
<form id="form1" runat="server">
<div>
hello world


<script>
    FB.login(function (response) {
        if (response.authResponse) {
            console.log('Welcome!  Fetching your information.... ');
            FB.api('/me', function (response) {
                console.log('Good to see you, ' + response.name + '.');
            });
        } else {
            console.log('User cancelled login or did not fully authorize.');
        }
    }, { scope: 'email,user_likes' }); 

   </script>
    </div>
    </form>
     </body>

2 个答案:

答案 0 :(得分:0)

您可以使用Facebook JavaScript SDK,即FB.login功能来请求前端的权限。

示例:

FB.login(function(response) {
   if (response.authResponse) {
     console.log('Welcome!  Fetching your information.... ');
     FB.api('/me', function(response) {
       console.log('Good to see you, ' + response.name + '.');
     });
   } else {
     console.log('User cancelled login or did not fully authorize.');
   }
 }, {scope: 'email,user_likes'});

请记住首先加载FB JS SDK。即。

<div id="fb-root"></div>
<script>
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'YOUR_APP_ID', // App ID
      channelUrl : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      xfbml      : true  // parse XFBML
    });

    // Additional initialization code here
  };

  // 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));
</script>

答案 1 :(得分:0)

Facebook-c#-sdk已经从版本5改为v6 beta(最新版本),服务器端不再有facebook认证方法..为了验证用户并获得一些数据,你需要。

  1. 通过Javascript进行身份验证,并通过发布请求将Access令牌字符串发布到服务器端。

  2. 通过facebook-c#-sdk生成登录URL,并将用户重定向到auth。对话框。

  3. 为了获得facebook-c#-sdk v6,请在NuGet中使用以下命令。

    Install-Package facebook -pre
    

    对于Javascript,只需像simon604那样引用JS库。

    与客户端JS和服务器C#进行通信的一种好方法是创建一个包含访问令牌字符串的隐藏字段。