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

时间:2013-10-18 21:01:12

标签: php facebook facebook-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应用程序权限流程(“此页面需要访问您的朋友,Feed,等“)????

我正在查看一年前我做过的一个旧项目,但事实并非如此,因为该项目的代码非常相似。 Facebook最近有变化吗?

另外,为什么我可以访问该页面的完整Feed(http://facebook.com/jaycorvs/feed),而不仅仅是使用此应用权限访问权限的雕像?这根本没有意义。

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

2 个答案:

答案 0 :(得分:2)

似乎这是一个错误,已于2013年2月报道过:

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

但他们已经给予了这个低优先级,并且还没有给予更多更新。

答案 1 :(得分:0)

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

首先,解析/ feed,你可能知道,这是获取你想要的数据的一种方法......我曾经这样做过......但是随着我的数据集大小的增加,它变得过于密集。 ..

另一种选择?使用/发布。

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

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

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

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

但是,添加pageid作为节点ID的前缀可以绕过用户会话问题......