Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/240.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从facebook帐户获取公开帖子_Php_Facebook_Facebook Graph Api - Fatal编程技术网

Php 从facebook帐户获取公开帖子

Php 从facebook帐户获取公开帖子,php,facebook,facebook-graph-api,Php,Facebook,Facebook Graph Api,我只是想得到一份facebook上的公开帖子列表,但结果比预期的要难。在遇到几十种不同的方法/答案后,我决定尝试Facebook PHP SDK,但没有结果: $appID = 'MY_APP_ID'; $appSecret = 'MY_APP_SECRET'; $userID = 'TARGET_USER_ID'; FacebookSession::setDefaultApplication($appID, $appSecret); $session = FacebookSe

我只是想得到一份facebook上的公开帖子列表,但结果比预期的要难。在遇到几十种不同的方法/答案后,我决定尝试Facebook PHP SDK,但没有结果:

$appID     = 'MY_APP_ID';
$appSecret = 'MY_APP_SECRET';
$userID    = 'TARGET_USER_ID';

FacebookSession::setDefaultApplication($appID, $appSecret);

$session = FacebookSession::newAppSession();

try {
    $session->validate();
} catch (FacebookRequestException $ex) {
    // Session not valid, Graph API returned an exception with the reason.
    echo $ex->getMessage();
} catch (\Exception $ex) {
    // Graph API returned info, but it may mismatch the current app or have expired.
    echo $ex->getMessage();
}

try {
    $request = new FacebookRequest($session, 'GET', '/' . $userID . '/feed');
    $response = $request->execute();
    $graphObject = $response->getGraphObject();
} catch(\Exception $exception) {
    print_r($exception);
}

// result always is an empty GraphObject
print_r($graphObject->AsArray());
我的目标是简单地读取$userID的所有公共帖子,但是尽管没有得到任何错误,但是$graphObject总是空的。我已经使用了我的私人facebook账户,并发布了一些公开的测试帖子,但没有结果

我做错了什么?如何获得所有帖子的简单列表

编辑:似乎很多文档/“howtos”都是指一个旧的facebook PHP SDK,其中只有一个类(称为facebook)。有新SDK的例子吗


最后,我唯一的目标是阅读一个用户的帖子(我有完全访问权限),就像你使用twitter一样。如果有更简单的方法,我也可以改用。它不应该是针对多个用户的应用程序-只是一种读取您自己的fb帖子的方式。

如果未授权特定用户使用
用户帖子,您无法获得用户配置文件的公开帖子。您也可以使用
/me/feed
。更多信息:

您需要做的是:

  • 向用户授权
    user\u帖子
  • 扩展用户令牌并将其存储在数据库中
  • /me/posts
    与存储的令牌一起使用以获取条目
有关令牌的信息可在以下文章中找到:


您是如何获得这种授权的?我的意思是,如果我不想在我的网站上显示我自己的facebook帖子(例如),我是否可以在我的设置中找到用于应用程序的密钥/秘密?我很容易就能在twitter上做到这一点,我只需要在facebook上重新创建它。“应用程序”不应该被任何用户使用。你必须使用facebook登录:我今天可能非常密集,但我需要的不是每个用户的用户登录,而是一个(永久的)单一用户的facebook订阅源。如果需要登录,则会出现问题。我将浏览这些链接,也许我可以在那里找到信息——但即使是第一个链接也声明令牌的有效期仅为小时/60天。如何在外部网站上实现“永久”页面提要?不可能这么难!但我现在正在浏览链接,也许几分钟后我就能看到答案。我知道。您必须授权您的用户才能访问帖子/订阅源。我重复一遍:需要登录。您是对的,扩展用户令牌有效期为60天,之后您必须刷新它。你不能自动做到这一点。用户提要并不是真正用来在外部网站上显示的,这些条目有点“个人”。如果你想要一个永久的解决方案,只需使用facebook页面。扩展页面标记永远有效。虽然你也可以只使用应用程序访问令牌进行页面订阅。但请确保你了解用户配置文件和facebook页面之间的区别。