我在试图获取一些PHP代码以使用Facebook提供的Open Graph API时遇到了一些问题。
我有一些PHP代码,它接受一个url并返回该页面上使用Facebook Comments插件制作的评论数量。
我知道代码有效,但是,存在一个小问题。
当我尝试使用我的代码时,它不会显示任何信息。当我签入Facebook提供的API Explorer时,我想要的信息就在那里。唯一的区别是,在使用API资源管理器时,正在使用访问令牌。
我正在运行的代码试图获取同一域上页面的Graph数据。这不是要求此人授权我们的应用程序的东西,因为要求授权只是告诉某人在页面上做了多少评论是没有意义的。
所以我的问题是,如何在下面的代码中包含访问令牌:
function fb_comment_count($url = '') {
$filecontent = file_get_contents('https://graph.facebook.com/?ids=' . $url);
$json = json_decode($filecontent);
$count = $json->$url->comments;
if ($count == 0 || !isset($count)) {
$count = 0;
}
echo $count;
}
目前唯一的问题是这个 https://graph.facebook.com/?ids='。 $ url 它返回空,但是当我使用相同的URL时,API Explorer会显示正确的信息。可以在某个地方包含访问令牌,还是有些东西我不知道?
答案 0 :(得分:1)
我实际上最终使用了这段代码,这使我得到的不仅仅是评论计数(它使用Facebook PHP SDK):
<?php
// Stats taken from link_stats table
// Documentation: http://developers.facebook.com/docs/reference/fql/link_stat/
function FBLinkStats($url,$type){
$fbconfig['appid' ] = "###########";
$fbconfig['secret'] = "###########";
include_once "facebook.php";
$facebook = new Facebook(array(
'appId' => $fbconfig['appid' ],
'secret' => $fbconfig['secret'],
'cookie' => true
));
$fql = "SELECT url, normalized_url, share_count, like_count, comment_count, total_count, commentsbox_count, comments_fbid, click_count FROM link_stat WHERE url = '".$url."' ";
$param = array(
'method' => 'fql.query',
'query' => $fql,
'callback' => ''
);
$fqlResult = $facebook->api($param);
return $fqlResult[0][$type];
}
?>
该函数有两个变量,即您要获取信息的页面的URL,以及您想要返回的统计信息,可在此页面上找到:http://developers.facebook.com/docs/reference/fql/link_stat/
答案 1 :(得分:1)
您需要一个访问令牌来查询此数据。
但是,您可以使用应用访问令牌,而不是要求用户进行身份验证。
了解如何在此处生成一个:http://developers.facebook.com/docs/authentication/applications/