function getUserFriends(a) {
var id=a;
FB.api('/me/friends?fields=picture', function (response) {
//console.log('Got friends: ', id);
var x = y = 0;
var photos=[];
for (var i=0;i < response.data.length;i++) {
photos = response.data[i].picture.data.url;
$.post("insert_photo.php", {
"pic": photos,
"id":id
}, function (data) {
});
}
}
我正在使用Facebook API来调用我朋友的朋友个人资料照片并使用帖子插入数据库,假设我有500个朋友,它会发送500次帖子请求,现在我想将它存储在数组中然后是帖子请求。是否可能,如果是,请告诉我如何
答案 0 :(得分:0)
结交朋友
v2.0以后,获取/me/friends
的好友列表已被删除。因此,您使用的方法将在几个月内removed。
但现在还有另一种方法可以让朋友(基本上是可标记的朋友)得到终点/me/taggable_friends
;但这需要先批准。 (Check out the complete discussion)
保存个人资料照片
如果您想将网址保存在数组中,然后发布帖子请求,您也可以这样做 -
FB.api('/me/taggable_friends', function (response) {
var x = y = 0;
var photos=[];
for (var i=0;i < response.data.length;i++) {
var user={};
user.photo = response.data[i].picture.data.url;
user.id = response.data[i].id;
photos.push(user);
}
// at this point all the friends data have been saved in the array
for(var i=0; i<photos.length;i++){
$.post("insert_photo.php", {
"pic": photos[i].photo,
"id":photos[i].id
}, function (data) {
// done
});
}
});
或更清洁的方式 -
将photos
数组发送到php脚本,让php脚本循环并保存到db -
$.post("insert_photo.php", {
"data": JSON.stringify(photos)
}, function (data) {
// done
});
答案 1 :(得分:0)
我不确定我是否理解你,但如果你只想做一次 POST调用,你可以将$ .post()移到for循环之外。然后将所有照片数组发送为json。
例如:
function getUserFriends(a) {
var id=a;
FB.api('/me/friends?fields=picture', function (response) {
//console.log('Got friends: ', id);
var x = y = 0;
// Storing all photo urls in array
var photos=[];
for (var i=0;i < response.data.length;i++) {
photos.push(response.data[i].picture.data.url);
}
// Send photos as JSON
$.post("insert_photo.php", {
"pics": photos,
"id":id
}, function (data) {}
);
}
这将在一次POST调用中发送所有照片。您必须更新insert_photo.php脚本以迭代“pics”参数。类似的东西:
<?php
[...]
foreach (json_decode($_POST['pics']) as $pic) {
[...]
// You can use $pic here
[...]
}
[...]