【问题标题】:how to get user_likes from Facebook SDK in javascript?如何在 javascript 中从 Facebook SDK 获取 user_likes?
【发布时间】:2019-10-17 09:54:08
【问题描述】:

我正在尝试从 Facebook 获取用户的喜欢,我一直在寻找一个示例,但没有找到。使用我拥有的代码,我可以获取用户的个人资料信息,例如姓名、邮件、性别...... 这是我的代码:

     <script>
  window.fbAsyncInit = function() {
        FB.init({
            appId      : 'appid',
            xfbml      : true,
            version    : 'v4.0'
        });
        FB.getLoginStatus(function(response){
            if(response.status === 'connected'){
                document.getElementById('status').innerHTML = 'we are connected';
            } else if(response.status === 'not_authorized') {
                 document.getElementById('status').innerHTML = 'we are not logged in.'
            } else {
                document.getElementById('status').innerHTML = 'you are not logged in to Facebook';
            }
        });
    // FB.AppEvents.logPageView();
    };

    (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'));

    function login(){
        FB.login(function(response)
  {
            if(response.status === 'connected')
   {
                document.getElementById('status').innerHTML = 'we are connected';
    FB.api
    (
     '/me', 'GET', {fields: 'name,id,email,favorite_teams,picture,address,locale,location,meeting_for,gender'}, 
     function(response) 
     {
      document.getElementById('status').innerHTML = response.email+'<br>'+response.favorite_teams+'<br><img src="'+response.picture+'" /><br>'+response.name+'<br>'+response.address+'<br>'+response.locale+'<br>'+response.location+'<br>'+response.meeting_for+'<br>'+response.gender;

     }
    );

/* make the API call */
FB.api(
    "/me/likes",
    function (response) {
      if (response && !response.error) {
        alert(response);

      }
    }
);
alert('after likes');
    } 


   else if(response.status === 'not_authorized') {
                 document.getElementById('status').innerHTML = 'we are not logged in.'
            } else {
                document.getElementById('status').innerHTML = 'you are not logged in to Facebook';
            }

        }, {scope: 'email,groups_access_member_info,publish_to_groups,user_age_range,user_birthday,user_events,user_friends,user_gender,user_hometown,user_likes,user_link,user_location,user_photos,user_posts,user_tagged_places,user_videos'});
    }


    function logout(){
        FB.logout(function(response) {
            document.location.reload();
        });
    }



</script>
<div id="status">
</div>
<!-- <button onclick="getInfo()">Get Info</button> -->
<button onclick="login()">login</button>
<button onclick="logout()">logout</button>

但我不知道如何从 JSON 响应中提取用户喜欢的内容 JSON 响应如下所示:

{
 "data": [],
 "paging": {},
 "summary": {}
}

【问题讨论】:

  • 永远不要使用警报进行调试,console.log 要好得多并且可以正确显示对象。话虽如此,您是否正在尝试使用应用程序管理员?是否会在身份验证弹出窗口中询问您 user_likes 权限?
  • 感谢 @luschn 我使用了 console.log 并获得了想要的信息

标签: javascript facebook sdk


【解决方案1】:

我用这段代码找到了答案:

/* make the API call */
FB.api(
    "/me/likes",
    function (response) {
      if (response && !response.error) {
        console.log(response);
var text='';
for (i = 0; i < response.data.length; i++) {
  text +=response.data[i].created_time+'<br>'+response.data[i].name;
}
document.getElementById('status').innerHTML =text;


      }
    }
);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-03
    • 1970-01-01
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 2017-01-10
    • 2014-08-30
    • 1970-01-01
    相关资源
    最近更新 更多