Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取喜欢Facebook页面的人,并统计那些喜欢超过200个页面的人_Facebook_Facebook Graph Api_Facebook Like_Facebook Page - Fatal编程技术网

获取喜欢Facebook页面的人,并统计那些喜欢超过200个页面的人

获取喜欢Facebook页面的人,并统计那些喜欢超过200个页面的人,facebook,facebook-graph-api,facebook-like,facebook-page,Facebook,Facebook Graph Api,Facebook Like,Facebook Page,我正试图得到一份关注Facebook页面的随机喜欢者的“名单”。我用这段代码来获取一些粉丝(不是随机粉丝,但这是另外一回事) 不幸的是,Facebook文档不是很清楚: 但是,从用户那里获得喜欢的内容需要: 用户的用户访问令牌 在访问令牌上授予的“用户喜欢权限”,这是Facebook在您的应用程序上批准的特殊权限 如果用户没有访问令牌,则无法看到他们喜欢的页面 虽然不受支持,但如果他们公开了这些信息,您也许可以使用页面刮板来查找这些信息 根据你的问题,不清楚用户是否登录到你的应用程序,或者你

我正试图得到一份关注Facebook页面的随机喜欢者的“名单”。我用这段代码来获取一些粉丝(不是随机粉丝,但这是另外一回事)


不幸的是,Facebook文档不是很清楚:

但是,从用户那里获得喜欢的内容需要:

  • 用户的用户访问令牌
  • 在访问令牌上授予的“用户喜欢权限”,这是Facebook在您的应用程序上批准的特殊权限
如果用户没有访问令牌,则无法看到他们喜欢的页面

虽然不受支持,但如果他们公开了这些信息,您也许可以使用页面刮板来查找这些信息


根据你的问题,不清楚用户是否登录到你的应用程序,或者你只是想从你自己的某个页面或另一个页面获取信息。如果你没有用户登录到你的应用程序,恐怕除了页面刮板之外根本无法获取此信息。

因此,如果用户不登录到我的应用程序,我无法获取此信息,对吗?不允许刮板Facebook
<?php
function fetch_fb_fans($fanpage_name, $no_of_retries = 10, $pause = 500000){
    $ret = array();
    /* get page info from graph */
    $fanpage_data = json_decode(file_get_contents('http://graph.facebook.com/' . $fanpage_name), true);
    if(empty($fanpage_data['id'])){
        /* invalid fanpage name */
        return $ret;
    }
    $matches = array();
    $url = 'http://www.facebook.com/plugins/fan.php?connections=100&id=' . $fanpage_data['id'];
    $context = stream_context_create(array('http' => array('header' => 'User-Agent: Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0')));
    for($a = 0; $a < $no_of_retries; $a++){
        $like_html = file_get_contents($url, false, $context);
        preg_match_all('{href="https?://www\.facebook\.com/([a-zA-Z0-9._-]+)" data-jsid="anchor" target="_blank"}', $like_html, $matches);
        if(empty($matches[1])){
            /* failed to fetch any fans - convert returning array, cause it might be not empty */
            return array_keys($ret);
        }else{
            // merge profiles as array keys so they will stay unique
            $ret = array_merge($ret, array_flip($matches[1]));
        }
        // don't get banned as flooder
        usleep($pause);
    }
    return array_keys($ret);
}
/*
print_r(fetch_fb_fans('cocacola', 2, 400000));
prints 73 unique fan names as array
*/

$contador = 0;
foreach (fetch_fb_fans('cocacola', 2, 400000) as $fan) {


    $pageContent = file_get_contents('http://graph.facebook.com/'.$fan.'');
    $parsedJson  = json_decode($pageContent);
    echo $parsedJson->username ."<br/>";
}
?>