使用API​​从粉丝专页获取Facebook状态

时间:2010-06-28 15:25:57

标签: json api facebook

我一直试图通过API获取粉丝页面的最新Facebook状态一段时间,似乎无法得到我想要的东西。我真的想避免使用RSS。我可以通过https://graph.facebook.com/174690270761/feed从Feed中获取完整列表,但我只想要页面管理员发布的最后一个状态,而不是其他任何人。

他们是一个简单的方法来获得它而无需进行身份验证吗?

提前致谢

修改 https://graph.facebook.com/174690270761/statuses似乎是我正在寻找的东西,但我需要一个OAuthAccessToken,但无法看到如何在不涉及用户的情况下,因为我试图通过自己的凭据/应用程序访问

3 个答案:

答案 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来逃避。