使用Facebook Graph APi的数组中的数组

迈克尔·斯玛德(Michael Self-Made)

在过去的两天里,我一直在研究这个问题,一遍又一遍地搜索..一无所有。了解我不是这里的专家-很好!哈哈

我正在尝试获取以下链接中的信息;

https://graph.facebook.com/570215713050551_4508656/comments/?fields=likes.fields(id,用户名,名称,配置文件类型)

然后导出到csv。

现在,我有许多其他的api工具,但是这个让我很困惑。

基本上,需要获取foreach的数据,然后再次运行该数据,再进行“下一个”分页等。

完全在这里迷路了。

我当前的代码在这里。

<?php
//Export and Download the Liker Data from each comment here .. 
$id = $_GET['data'];
$commentor = $_GET['commentor'];


$toget = 'https://graph.facebook.com/'.$id.'/comments/?fields=likes.fields(id,username,name,profile_type)';
$data = @file_get_contents($toget);


$data = json_decode($data,true);
if($data['data'] == FALSE){
    echo "gay!";
    die;
}

$alldata = array();

function moredata($data){
    global $alldata;
        foreach ($data["data"] as $eachdata){
            $onedata['id'] = $eachdata['id'];
                foreach ($eachdata["likes"] as $ex){
                $onedata['uid'] = $$ex['data'][0]['id'];
                $onedata['name'] = $ex['data'][0]['name'];
                $onedata['username'] = $ex['data'][0]['username'];
                $onedata['profile_type'] = $ex['data'][0]['profile_type'];
                //$onedata['link'] = $eachdata['link'];
                }
            $alldata[] = $onedata;
            $onedata = array();
        }

        if (array_key_exists('next', $data['paging'])) {
            $nextpagelink = $data['paging']['next'];
            $nextdata = json_decode(file_get_contents($nextpagelink),true);
            moredata($nextdata);
        }


}

moredata($data);

... ETC ETC退出csv

这里的任何帮助将是惊人的!谢谢你们。

Trimantra软件解决方案

这有点棘手,但是可以使用嵌套递归来解决。

我已经尝试过您的代码,并做了很少的更改,但是仍然有效。检查下面的代码

$alldata    = array();
$arrlikedata = array();

function moredata($data){
    global $alldata;
    global $arrlikedata;

    foreach ($data["data"] as $eachdata)
    {
        $onedata['id'] = $eachdata['id'];
        if(isset($eachdata["likes"])){
            $onedata['likes'] =  more_like_data($eachdata["likes"]);
        }
        else{
            $onedata['likes'] = array();
        }

        $alldata[] = $onedata;
        $arrlikedata = array();
    }

    if (array_key_exists('next', $data['paging'])) {
        $nextpagelink = $data['paging']['next'];
        $nextdata = json_decode(file_get_contents($nextpagelink),true);
        moredata($nextdata);
    }  
}

function more_like_data($likedata)
{   global $alldata;
    global $arrlikedata;

    if(isset($likedata["data"])){
        foreach ($likedata["data"] as $ex){
            if(isset($ex)){               
                $onedata1['uid'] = $ex['id'];
                $onedata1['name'] = $ex['name'];
                $onedata1['username'] = (isset($ex['username']))?$ex['username']:'';
                $onedata1['profile_type'] = $ex['profile_type'];                
                $arrlikedata[] = $onedata1;
                $onedata1 = array();
            }
        }
    }

    if(isset($likedata['paging'])){
         if (array_key_exists('next', $likedata['paging'])) 
         {   
            $nextpagelink = $likedata['paging']['next'];
            $nextlikedata = json_decode(file_get_contents($nextpagelink),true);
            return  more_like_data($nextlikedata);  
         }
         else{
             return    $arrlikedata;  
         }
    }
    else{    
        return  $arrlikedata;
    }
}
moredata($data);

print "<pre>";
print_r($alldata);
print "</pre>";

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章