Php 用于评论计数的Facebook Graph API身份验证?(我想我遗漏了什么。)
我在尝试让一些PHP代码与Facebook提供的开放图形API一起工作时遇到了一些问题 我有一些PHP代码,它获取url并返回使用Facebook评论插件在该页面上发表的评论数 我知道代码是有效的,但是有一个小问题 当我尝试我的代码时,它不会显示任何信息。当我登录Facebook提供的API浏览器时,我想要的信息就在那里。唯一的区别是,在使用API资源管理器时,正在使用访问令牌 我正在运行的代码试图获取同一域中页面的图形数据。这也不是要求某人授权我们的应用程序,因为仅仅为了告诉某人在一个页面上发表了多少评论而请求授权是没有意义的 因此,我的问题是,如何在下面的代码中包含访问令牌:Php 用于评论计数的Facebook Graph API身份验证?(我想我遗漏了什么。),php,facebook,facebook-opengraph,Php,Facebook,Facebook Opengraph,我在尝试让一些PHP代码与Facebook提供的开放图形API一起工作时遇到了一些问题 我有一些PHP代码,它获取url并返回使用Facebook评论插件在该页面上发表的评论数 我知道代码是有效的,但是有一个小问题 当我尝试我的代码时,它不会显示任何信息。当我登录Facebook提供的API浏览器时,我想要的信息就在那里。唯一的区别是,在使用API资源管理器时,正在使用访问令牌 我正在运行的代码试图获取同一域中页面的图形数据。这也不是要求某人授权我们的应用程序,因为仅仅为了告诉某人在一个页面上发
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资源管理器会显示正确的信息。访问令牌可以包含在这里的某个地方吗,或者我缺少了什么吗?我实际上最终使用了这段代码,这让我获得的不仅仅是评论计数(它使用Facebook PHP SDK):
您需要一个访问令牌来查询此数据
但是,您可以使用应用程序访问令牌,而不是要求用户进行身份验证
请参见如何在此处生成一个:只是为了澄清一下,我在我的站点上使用PHP访问同一站点上的图形信息。这应该在没有任何人授权的情况下起作用。如果我可以进行一次性授权,也可以。您是否可以共享正在创建的API资源管理器的链接或调用。我在API资源管理器中检查的URL为“”,当我在列表中选择我的应用程序时,它会更改所使用的访问令牌。它在回复中也这样说:“评论:1”。这是我需要我的脚本才能访问的信息,但是如果不包括访问代码,不知何故,这些信息不可用。谢谢,我在浏览时错过了这一页。我决定使用FQL方法来获取我正在寻找的数据。然而,我将投票支持你的答案,因为这些信息很有用。我不确定这一点,但Facebook是否超过FBML或FQL?在一些较旧的Facebook文档上,顶部有一个通知,说它要么贬值,要么将来会贬值。然而,在FQL文档页面上没有这样的消息,所以我希望这不是他们计划在短期内结束的事情。fb正在贬低公共访问,所以这是一个好办法(阅读:未来访问可能需要appid。)
<?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];
}
?>