【问题标题】:Get latest post from facebook page (feed)从 facebook 页面 (feed) 获取最新帖子
【发布时间】:2016-07-18 15:37:15
【问题描述】:

我正在尝试从 facebook 页面获取最新的 facebook 帖子。我正在使用 facebook php SDK v4 (https://github.com/facebook/facebook-php-sdk-v4/)。

我已将库(php sdk)添加到作曲家:composer require facebook/php-sdk-v4。我的 appid / app secret 和 page id 是正确的。

$config = array();
$config['app_id'] = 'myappid';
$config['app_secret'] = 'myappsecret';

$facebook = new \Facebook\Facebook($config);

$pageid = 'mypageid';

try {

    $pagefeed = $facebook->api("/" . $pageid . "/feed");
}
catch(Exception $ex){
    echo $ex->getMessage(); die;
}

问题是我收到错误Call to undefined method Facebook\Facebook::api()。当我在网上搜索其他主题时,他们经常使用这个。但是我做错了什么?

【问题讨论】:

  • 据我所知,api 不是任何 Facebook PHP 文件中的函数。唔。您是否尝试过使用$facebook->get() 函数?
  • 是的,没有api方法,只有get和post方法。看看这里sammyk.me/upgrading-the-facebook-php-sdk-from-v4-to-v5)
  • 这实际上是 SDK 的 v5(参见 github 上的自述文件,他们只是保留了旧 URL。)v4 确实有一个 api 方法,但在 v5 中它被删除了。你应该总是先阅读官方文档:developers.facebook.com/docs/php/api/5.0.0

标签: php facebook facebook-graph-api sdk app-secret


【解决方案1】:

根据docs,您可以使用以下代码获取页面提要:

$request = new FacebookRequest(
  $fbApp,
  '{access-token}',
  'GET',
  '/{page-id}/feed'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */

来源https://developers.facebook.com/docs/graph-api/reference/v2.5/page/feed

请注意,该页面上的示例默认为 HTTP 版本,而不是 PHP SDK。

编辑:为 FacebookRequest 函数添加了正确的参数。

需要访问令牌和$app 实例,如下所示。

Facebook\FacebookRequest($fbApp, '{access-token}', 'GET', '/{page-id}/feed');

可以使用getAccessToken()函数创建访问令牌,如下所示。

$access_token =  $facebook->getAccessToken();
$facebook->setAccessToken($access_token);

API 的 V4 使用了一个会话系统,可以在这里找到: https://developers.facebook.com/docs/php/FacebookSession/4.0.0

创建一个 Facebook Session 变量,然后您可以在原始 v4 请求方法中使用该 $session

$request = new FacebookRequest(
  $session,
  'GET',
  '/{page-id}/feed'
);
$response = $request->execute();
$graphObject = $response->getGraphObject();
/* handle the result */

【讨论】:

  • $session 变量是什么?
  • 对不起。 $session 显然已在 API 的 v5 中删除。我已经更新了它以包含最新的版本信息。如果你还没有从 v4 Github 链接更新到 v5 API,你可以使用底部的信息 :)
  • 感谢您的信息,但 $fbApp 变量是什么?以及如何获得访问令牌?
  • $fbAppFacebookApp 类的实例。如果您正在使用 API,您可能已经创建了一个。如果没有,我稍后会添加更多信息。要获取访问令牌,您需要使用身份验证 API。我提供了一个链接,但当我回到我的电脑时会详细说明它。 :)
  • 抱歉这么久才回复。使用 API,要创建 $fbApp 变量,它将是: $fbApp = new Facebook\FacebookApp('{app-id}', '{app-secret}'); 这将创建一个新的 FacebookApp 实例。对于 AccessToken,它将是:$accessToken = new Facebook\Authentication\AccessToken('{access-token}');
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-20
  • 1970-01-01
  • 2022-09-26
相关资源
最近更新 更多