我一直试图通过API获取粉丝页面的最新Facebook状态一段时间,似乎无法得到我想要的东西。我真的想避免使用RSS。我可以通过https://graph.facebook.com/174690270761/feed从Feed中获取完整列表,但我只想要页面管理员发布的最后一个状态,而不是其他任何人。
他们是一个简单的方法来获得它而无需进行身份验证吗?
提前致谢
修改 https://graph.facebook.com/174690270761/statuses似乎是我正在寻找的东西,但我需要一个OAuthAccessToken,但无法看到如何在不涉及用户的情况下,因为我试图通过自己的凭据/应用程序访问
答案 0 :(得分:13)
Facebook更改了api,现在要求您提供访问令牌。 您可以使用Facebook的PHP sdk,但我找到了一个更快的方法:
<?
$appid = '1234567890';
$secret = 'db19c5379c7d5b0c79c7f05dd46da66c';
$pageid = 'Google';
$token = file_get_contents('https://graph.facebook.com/oauth/access_token?grant_type=client_credentials&client_id='.$appid.'&client_secret='.$secret);
$feed = file_get_contents('https://graph.facebook.com/'.$pageid.'/feed&'.$token);
print_r(json_decode($feed));
?>
更新15/12/12 应用程序访问令牌秘密nosist现在 - 使用此请求:
$feed = file_get_contents('https://graph.facebook.com/Saxity/feed?access_token='.$appid.'|'.$secret);
答案 1 :(得分:2)
我终于发现,这不需要通过API完成,或者根本不需要任何身份验证。
基本上,您可以通过JSON Feed访问数据:
$pageID = "ID of Page" //supply the Id of the fan page you want to access
$url = "https://graph.facebook.com/". $pageID ."/feed";
$json = file_get_contents($url);
$jsonData = json_decode($json);
foreach($jsonData->data as $val) {
if($val->from->id == $pageID) { //find the first matching post/status by a fan page admin
$message = $val->message;
echo $message;
break; //stop looping on most recent status posted by page admin
}
}
答案 2 :(得分:1)
我认为没有一个好方法可以做到这一点。你可以很容易地从它的外观处理JSON。您可以使用since查询参数来限制结果数。例如:
https://graph.facebook.com/174690270761/feed?since=last%20Monday
你也可以使用限制,但我不认为用户过滤。如果管理员是唯一允许发布的人,那么您可以使用limit = 1来逃避。