Facebook对象数据(如)保持空白,除非在自己的fb帐户下

时间:2014-05-21 16:57:38

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

我在APS.NET C#中构建了一个网页,用于检查用户是否在Facebook登录。 然后它检查是否喜欢相应的Facebook页面。页面上有一个类似的按钮。如果他们点击“赞”按钮,他们会转到特定页面。

这一切都很好但是当已经喜欢facebook页面的用户进入我的网页时,没有任何反应。我在stackoverflow上构建了许多主题的代码。它工作,但只有我使用自己的Facebook帐户。如果随机用户这样做,则对象数据仍然是空的。

我在代码中丢失了什么或者我的facebookapp配置错误了吗?

更新:添加了范围参数

使用Javascript:

<div id="fb-root"></div>
<script>

  window.fbAsyncInit = function() {

      //
      FB.init({
        appId      : '{app id}',                
        status     : true, 
        cookie     : true, 
        xfbml      : true,
        version    : 'v2.0'
      });



      //
      FB.login(function(response) {
          if (response.status == 'connected') {
              var user_id = response.authResponse.userID;
              var page_id = "{page id}";
              var fql_query = "SELECT uid FROM page_fan WHERE page_id=" + page_id + " and uid=" + user_id;

              /* make the API call */
              FB.api(
                  "/me/likes/{page id}",
                  function (response) {
                    console.log(response);

                    if (response && !response.error) {

                      if(response.data.length == 0) {                              

                        location.href = 'stay...';
                      }
                      else {
                        location.href = 'go to specific page';
                      }

                    }



                  }
              );


          } else {
            // user is not logged in
          }
      }, {scope: 'user_likes'});

// redirect after like
          FB.Event.subscribe('edge.create',
              function(response) {
                  location.href = '...';                
              }
          );

  };

  (function(d, s, id){
     var js, fjs = d.getElementsByTagName(s)[0];
     if (d.getElementById(id)) {return;}
     js = d.createElement(s); js.id = id;
     js.src = "//connect.facebook.net/en_US/sdk.js";
     fjs.parentNode.insertBefore(js, fjs);
   }(document, 'script', 'facebook-jssdk'));

</script>

ASP / HTML:

<div class="fb-like" data-href="https://www.facebook.com/pages/{page}" data-width="300" data-layout="box_count" data-action="like" data-show-faces="false" data-share="false"></div>

0 个答案:

没有答案