将朋友照片插入数组中的数据库中

时间:2014-06-24 10:27:20

标签: javascript php facebook facebook-graph-api facebook-javascript-sdk

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次帖子请求,现在我想将它存储在数组中然后是帖子请求。是否可能,如果是,请告诉我如何

2 个答案:

答案 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
     [...]
}
[...]