javascript - 如何在 javascript 中从 Facebook SDK 获取 user_likes?
问题描述
我试图从 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": {}
}
解决方案
我用这段代码找到了答案:
/* 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;
}
}
);
推荐阅读
- javascript - 从嵌套数组中删除对象失败
- typeorm - 左连接和选择但不同
- javascript - 角材料不过滤选项
- elasticsearch - Elasticsearch - 使用字段匹配来提升而不是获取文档
- mongodb - 无法在 MongoDB GRAPHQL 查询中使用变量
- windows - 是否有用于 Windows 控制台的 API?
- excel - 选择与excel vba中选定行相对应的单元格
- google-cloud-platform - 谷歌云存储提供不同尺寸的图片?
- c# - 切换分支后重新加载所有项目不会重新加载项目
- javascript - 在 chakra-ui 上为 Modal 创建变体样式