我目前正在制作一款应用程序,将高中学生与非营利组织联系起来,以帮助管理他们的社交媒体页面并获得社区服务时间。
我们为每位学生提供一个社会影响力分数,该分数是根据他们的基金会为基金会所获得的喜欢,评论和分享的数量来计算的。我们正在尝试创建一个服务器,该服务器使用永不过期的页面访问令牌从这些Facebook页面中提取数据。如果我们尝试持续检索数据,这是否需要登录脚本?此外,我们的代码一直显示错误。
它出了什么问题?
<?php
// Defining FB SDK with absolute paths
define('FACEBOOK_SDK_V4_SRC_DIR', 'http://www.website.com/src/Facebook/');
require 'http://www.website.com/src/Facebook/autoload.php';
use Facebook\FacebookSession;
use Facebook\FacebookRequest;
use Facebook\GraphUser;
use Facebook\FacebookRequestException;
FacebookSession::setDefaultApplication(‘App ID’,’App Secret’);
$session = new FacebookSession(‘Never expiring page access token’);
try {
$data = (new FacebookRequest(
$session, 'GET', '/1503911716546178/posts'
))->execute()->getGraphObject()->getPropertyAsArray("data");
foreach ($data as $post){
$postId = $post->getProperty('id');
$postMessage = $post->getProperty('message');
print "$postId - $postMessage <br />";
}
} catch (FacebookRequestException $e) {
// The Graph API returned an error
} catch (\Exception $e) {
// Some other error occurred
}
?>
答案 0 :(得分:0)
当然,您需要一个登录脚本来获取页面令牌,但这只是一次性的事情。获取扩展页面令牌后,您可以将其存储在数据库中,无需用户交互即可使用它。
有关令牌及其生成方式的更多信息:
我建议使用JavaScript SDK进行登录,它比PHP SDK更容易处理,可用性更好(没有重定向)。例如:http://www.devils-heaven.com/facebook-javascript-sdk-login/
关于你的代码:很难说没有实际的错误消息,但是没有App ID或Secret,并且没有令牌(不要在STACKOVERFLOW上发布你的秘密或任何令牌)。确保您使用的是有效令牌,您可以在调试器中对其进行测试:https://developers.facebook.com/tools/debug/