1

Я пытаюсь получить «список» случайных пользователей, которые следуют странице на Facebook. Я использую этот код, чтобы получить некоторых поклонников (не случайных фанатов, но это что-то еще).получите похожие страницы Facebook и получите количество тех, кому нравится более 200 страниц.

<?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/>"; 
} 
?> 

Код от: Facebook API: Get fans of/people who like a page

Этот код дает мне некоторые имена пользователей. Теперь, мой вопрос, после поиска Google ... Я могу получить количество страниц, которые следуют за каждым пользователем?

Я знаю, что Graph API дайте мне знать мои любимые, но когда я пытаюсь увидеть, что другим пользователям это нравится, это вызывает ошибку OAuthException. Я полагаю, что я не прав. Итак, я получу некоторое объяснение о том, как это сделать. Я искал Google, но я не понимаю, как это работает.

Спасибо.

+0

Скребок Facebook не разрешен – WizKid

ответ

1

документация Facebook, к сожалению, не очень понятно: https://developers.facebook.com/docs/graph-api/reference/v2.2/user

Однако получение подобных от пользователя требуется: маркер доступа

  • пользователя для пользователя
  • «Пользователь любит разрешение» предоставляется на токен доступа, который является специальным разрешением, которое Facebook одобряет в вашем приложении.

Без токена доступа для пользователь, вы не можете видеть, какие страницы им нравятся.

Не поддерживается, возможно, вы можете использовать скребок страницы, чтобы найти эту информацию, если у вас есть эта публикация.

Исходя из вашего вопроса, неясно, вошли ли пользователи в ваше приложение или если вы просто пытаетесь получить информацию с одной из ваших собственных страниц или на другой странице. Если у вас нет пользователей, подключающихся к вашему приложению, я боюсь, что нет никакой информации, чтобы получить эту информацию отдельно от скребка страницы.

+0

Итак, я не могу получить эту информацию, если пользователь не заходит в мое приложение, не так ли? –

+0

@ GerardCuadras это правильно – sricks