【问题标题】:Get Facebook Status from Fan Page using API使用 API 从粉丝页面获取 Facebook 状态
【发布时间】:2011-03-09 04:54:16
【问题描述】:

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

他们是一种无需身份验证即可轻松获得它的方法吗?

提前致谢

编辑: https://graph.facebook.com/174690270761/statuses 似乎是我正在寻找的东西,但我需要一个 OAuthAccessToken 来解决这个问题,但在不涉及用户的情况下看不到如何操作,因为我正在尝试通过我自己的凭据/应用程序进行访问

【问题讨论】:

    标签: json api facebook


    【解决方案1】:

    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));
    ?>
    

    2012 年 15 月 12 日更新 id 和 secret 的应用访问令牌 nosist - 使用此请求:

    $feed = file_get_contents('https://graph.facebook.com/Saxity/feed?access_token='.$appid.'|'.$secret);
    

    【讨论】:

    • 这里的 user_credentials 是什么?
    • 您必须获得一个 api 密钥。看看这里:developers.facebook.com
    • 有效,但有几页返回空结果。我也可以将其限制在页面提要中,这样我就可以将用户帖子排除在他们的提要中吗?
    • @Mike - 使用 https://graph.facebook.com/pageid/posts 而不是 https://graph.facebook.com/pageid/feed - 帖子只返回页面管理员发布的帖子,而提要返回所有活动,包括其他用户的 cmets。
    【解决方案2】:

    我终于发现这不必通过 API 来完成,或者根本不需要任何身份验证。

    基本上,您可以通过 JSON 提要访问数据:

    $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
        }
    }
    

    【讨论】:

      【解决方案3】:

      我认为没有什么好的方法可以做到这一点。尽管从外观上看,您可以很容易地处理 JSON。您可以使用since 查询参数来限制结果的数量。例如:

      https://graph.facebook.com/174690270761/feed?since=last%20Monday

      您也可以对此使用限制,但我认为不会按用户过滤。如果管理员是唯一允许发帖的人,那么您可以使用 limit=1 侥幸逃脱。

      【讨论】:

      • 感谢您的帮助。设法仅访问来自graph.facebook.com/174690270761/statuses 的状态,但现在需要一个 OAuthAccessToken,尽管它不是安全数据。来源 (slideshare.net/busse/…)
      • 是的 - 我试图为您最初提出的不需要令牌的问题提供解决方案:) 一旦您有了令牌,API 就会变得更加灵活。
      • 是的,我认为公开数据可能不使用令牌。我没有得到的是如何在不涉及用户的情况下使用 PHP 进行身份验证,因为我看不到任何这样做的示例:/
      • 我应该详细说明,我的意思是进行身份验证,因为我只需要获取“粉丝/商业页面”的状态,而不是属于用户的页面。我看不到如何传递静态凭据来访问状态数据,我看到的所有示例仅使用 Facebook 登录等供网站访问者使用,而不是硬编码的服务器端:(
      • 您管理该页面吗?该页面是否公开显示状态更新?
      猜你喜欢
      • 2011-04-03
      • 1970-01-01
      • 2023-03-07
      • 1970-01-01
      • 2012-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多