使用php-sdk v4可以在网站上显示3个或更多的墙帖


Use php sdk v4 to get 3 or more wall posts to display on website

请给我一个php脚本的工作示例,该脚本使用php-sdk v4 for facebook,从用户页面中提取最新的墙帖。

我在谷歌和stackoverflow上浏览过,但大多数例子只是向我展示了如何通过fb脚本登录(我已经在我正在工作的网站上设置了这个脚本)。我确实发现了这个php-sdk v4问题,但它忽略了如何获得访问令牌(如果可以的话,请包括如何获得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的人来说,它们非常令人困惑。提前感谢您的帮助!

我终于得到了解决方案,下面是帮助我实现目标的分解和资源。

步骤0:

以开发者身份创建一个fb应用程序,并获取应用程序Id和应用程序机密。

步骤1:

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

步骤2:

如果你想点击特定的fb页面或你自己的页面,请使用此链接了解如何获取页面id。页面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的错误或bug,请参阅此链接最后一个其他部分中的代码。NULL会话变量,重定向到当前页面