我遇到的问题与此较旧的帖子相同: Facebook API: Get fans of / people who like a page
我的问题是关于最佳答案提供的代码:
See further below for updated code
我想知道如何以某种方式运行此代码(当然,使用我自己的参数)。我已经查看了在线PHP脚本执行程序的一些选项,因为我不熟悉任何可用的IDE或类似程序。更基本上:我不知道我可以运行这个PHP脚本的任何方式(假设它是有效的,并且没有遗漏一些重要的设置)。
我希望有某种控制台可供使用,然后我可以在执行结束时看到完整打印的数组。
我最简单的选择是什么?我不打算从底层完全学习PHP。我只是在寻找我链接到的帖子中描述的功能。
非常感谢能够提供必要见解的任何人! :)
祝你好运, Kirluu
编辑:
http://phpfiddle.org/似乎正在寻找我想要的东西,但输出只是" Array()"。我想打印它的所有价值 - 我怎么能实现这个目标? 我试图将执行行更改为:
print_r(array_values(fetch_fb_fans('ComputerHjælp', 5, 400000)));
但这并没有改变结果。
EDIT2: 我做了一些编辑,并将代码包含在phpfiddle网站规定的php标签中。我现在根本没有得到它出现的任何数据,因为" nope"现在打印而不是数组值。编程人员访问Facebook API有什么问题吗?
<?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;
}
?>
事情就在这里,我知道有一个名为&#34; Komplett.dk&#34;的Facebook网站,但显然有些东西不起作用。代码是从2013年4月开始的.Facebook API是否以某种方式更新,这不允许此代码按预期工作?