У меня та же проблема, что и в этом старом посте:
Facebook API: Получите поклонников / людей, которым нравится страница
Мой вопрос касается кода, указанного в верхнем ответе:
See further below for updated code
Я хотел бы знать, как я могу как-то запустить этот код (с моими собственными параметрами, конечно). Я рассмотрел некоторые варианты для онлайн-исполнителей PHP Script, так как я не знаком ни с какой IDE или аналогичным образом, которые доступны. Более существенно: я не знаю, каким образом я могу запустить этот скрипт PHP (при условии, что он действителен и не пропускает некоторые важные настройки вокруг него).
Я надеюсь, что есть какая-то консоль, где я смогу увидеть итоговый массив, напечатанный полностью к концу выполнения.
Каковы мои (самые простые) варианты? Я не хочу полностью изучать PHP снизу. Я просто ищу функциональность, описанную в посте, на который я ссылаюсь.
Заранее большое спасибо всем, кто может предоставить необходимую информацию! 🙂
С наилучшими пожеланиями,
Kirluu
РЕДАКТИРОВАТЬ:
http://phpfiddle.org/ кажется, делает то, что я искал, но вывод просто «Array ()». Я хотел бы напечатать все его значения — как мне этого добиться?
Я попытался изменить строку выполнения на:
print_r(array_values(fetch_fb_fans('ComputerHjælp', 5, 400000)));
Это не меняет результат, хотя.
EDIT2:
Я сделал некоторые изменения и вложил код в тег php, как это предписано сайтом phpfiddle. Теперь я просто не получаю никаких данных, поскольку вместо значений массива теперь выводится «nope». Что-то не так с доступом кодировщиков к API Facebook?
<?php
function fetch_fb_fans($fanpage_name, $no_of_retries = 10, $pause = 500000 /* 500ms */){
$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);
}
$val = fetch_fb_fans('Komplett.dk', 5, 400000);
if(empty($val)){
echo "nope";
}
foreach($val as $key => $value)
{
echo $key." has the value". $value;
}
?>
Дело в том, что я точно знаю, что есть сайт в Facebook под названием «Komplett.dk», однако явно что-то не работает. Код с апреля 2013 года. Был ли каким-либо образом обновлен API Facebook, что не позволяет этому коду работать должным образом?
Вы можете скомпилировать ваш php-код, используя следующий php-компилятор
http://www.tutorialspoint.com/codingground.htm
И для sql
Других решений пока нет …