使用php sdk v4获取3个或更多墙上帖子以显示在网站上

时间:2015-02-06 19:04:26

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

我需要一个PHP脚本的工作示例,该脚本利用php sdk v4 for facebook从用户页面中提取最新的墙上帖子。

我在google和stackoverflow中环顾四周,但大多数示例只是告诉我如何通过fb脚本登录(我已经在我正在处理的网站上设置了)。我确实发现了这个php sdk v4 question,但它忽略了如何获取访问令牌(如果可以请包括如何获取未在60天内过期的访问令牌)。我今天刚开始使用sdk,不知道如何开始使用。我从在线复制和粘贴一些示例中获得了这些代码,但我不知道要添加什么,以便我可以获得链接问题中解释的提要/帖子。

<?php    
require_once('facebook-php-sdk-v4/autoload.php');

session_start();

use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\FacebookRedirectLoginHelper;
use Facebook\GraphUser;

FacebookSession::setDefaultApplication('xxxxxxxx','xxxxxxxxx');

我可能要求太多,或者我的问题可能是一般的,但我真的只需要这个例子。如果要求代码太多,请将我链接到一个在线示例,告诉我如何操作。我也查看了fb文档,但对于从未使用过sdk的人来说,它们非常令人困惑。提前感谢您的任何帮助!

1 个答案:

答案 0 :(得分:0)

我终于得到了解决方案,这是细分和我的资源帮助我实现了我想要的。

第0步:

创建一个fb应用程序作为开发人员,并获取应用程序ID和应用程序秘密。

第1步:

使用此链接查看如何设置与fb的基本交互并创建GET请求。 Basic FB interaction

第2步:

如果您想点击特定的fb页面或您自己的页面,请使用此链接了解如何获取页面ID。 Page Id

第3步:

然后,如果你想获得我想要的帖子,可以在第一个链接的底部更改最后一个代码:

if ( isset( $session ) ) {
// save the session
$_SESSION['fb_token'] = $session->getToken();
// create a session using saved token or the new one we generated at login
$session = new FacebookSession( $session->getToken() );
// graph api request for user data
$request = new FacebookRequest( $session, 'GET', '/me' );
$response = $request->execute();
// get response
$graphObject = $response->getGraphObject()->asArray();
// print profile data
echo '<pre>' . print_r( $graphObject, 1 ) . '</pre>';
// print logout url using session and redirect_uri (logout.php page should destroy the session)
echo '<a href="' . $helper->getLogoutUrl( $session, 'http://yourwebsite.com/app/logout.php' ) . '">Logout</a>';
}

到这个

// see if we have a session
if ( isset( $session ) ) { 
// save the session
  $_SESSION['fb_token'] = $session->getToken();
// create a session using saved token or the new one we generated at login
  $session = new FacebookSession( $session->getToken() );
// graph api request for user data
  $request = new FacebookRequest( $session, 'GET', '/'.$pageId.'/posts?limit=3' );
  $response = $request->execute();
// get response
  $graphObject = $response->getGraphObject()->asArray();
// print profile data
  echo '<pre>' . print_r( $graphObject, 1 ) . '</pre>';
}

第4步(可选):

最后,如果您使用FacebookRedirectLoginHelper函数重定向到您当前所在的同一页面,则可能会收到错误或您的$ session变量为NULL的错误,请参阅此链接的最后一个内容中的代码。 NULL session variable, redirect to current page