通过 PHP SDK 获取公共 Facebook 页面的最新状态


Fetch latest status for public Facebook page via PHP SDK?

我有一个网页,我想简单地显示公开可用的Facebook页面(https://www.facebook.com/jaycorvs)的最新状态。

我做了一个应用程序,得到了API密钥和密钥,等等......使用 PHP SDK,我遇到了以下问题:

// Facebook
require_once('facebook-php-sdk/facebook.php');
$facebook = new Facebook(array(
    'appId' => '5799359587XXXXX',
    'secret' => 'd466917a5XXXXXXXXXXXXX9dff4d77a79',
));
$status = $facebook->api("/jaycorvs/statuses?access_token=".$facebook->getAccessToken() );
// Error:
Fatal error: Uncaught OAuthException: (#100) Requires user session thrown in /vhosts/asdfasdfa.com/public/facebook-php-sdk/base_facebook.php on line 1264

那么,这是否意味着,为了在网页上显示一个简单的、公开可用的状态更新,我必须让访问者实际完成 Facebook 应用程序许可流程("此页面想要访问您的朋友、提要等")????

我正在查看一年前做的一个旧项目,当时情况并非如此,因为代码与该项目非常相似。Facebook最近改变了这一点吗?

另外,为什么我可以通过此应用程序权限访问页面的完整提要(http://facebook.com/jaycorvs/feed),而不仅仅是雕像本身?这完全没有意义。

我在这里错过了一些明显的东西吗?或者Facebook真的需要这些类型的应用程序权限来简单地查看公共状态吗?

似乎这是一个错误,已经在 2013 年 2 月报告

https://developers.facebook.com/bugs/480742545315442

但是他们已经给出了这个低优先级,并且还没有提供更多的更新。

我还有另一个关于它的错误,但与此同时,有几种解决方法:

首先,解析/feed,您可能知道,这是获取所需数据的一种方法......我曾经这样做过...但随着我数据收集规模的增长,它变得过于过程密集......

另一种选择?使用/帖子。

/职位。。。我认为类似于/状态,主要区别在于ID的格式.../posts 查询中的 ID 通常是pagename_nodeid

像19292868552_10150189643478553...你可以拼接它并重新组合它以获得帖子...

如果您搜索10150189643478553(假设),您将获得

{
  "error": {
      "message": "(#100) Requires user session", 
      "type": "OAuthException", 
      "code": 100
  }
}

但是,将页面 ID 作为前缀添加到节点 ID 允许您绕过用户会话问题...