我试图嵌入一个客户端的Facebook相册,这是我第一次使用,我有点迷路了。我设法用这段代码获取图像(坦白地说,它很难看,但现在我只想让它正常工作):
<?
$facebook_album = file_get_contents('https://graph.facebook.com/486769464721177/photos');
$dataArr = json_decode($facebook_album,true);
foreach($dataArr['data'] as $d){
echo "<a href=".$d['link']." target='_blank'><img src=\"".$d['source']."\"></a>";
}
?>现在的问题是,我的客户希望他的访客能够喜欢这些单独的图片。我想在foreach循环中使用类似的按钮:
<div class="fb-like" data-href="<? print $d['link']?>" data-send="false" data-layout="button_count" data-show-faces="false"></div>但是它不起作用,而图片上链接的$d‘链接工作得很好。有人能帮忙吗?我读到,可以使用OpenGraph在这些对象上发布类似的内容,但我不知道如何在PHP中这样做。
非常感谢你的帮助!
所以,我在这里读了很多关于我的问题的问题,还有facebook的开发者文档。
我想出了一些开始起作用的东西,但仍然很笨拙。
以下是我所有的PHP:
<?
require_once("php-sdk/src/facebook.php");
$config = array();
$config['appId'] = '##MyAppID##';
$config['secret'] = '##MyAppSecret##';
$facebook = new Facebook($config);
$user_id=$facebook->getUser();
if($facebook->getUser()) {
// We have a user ID, so probably a logged in user.
// If not, we'll get an exception, which we handle below.
try {
$access_token = $facebook->getAccessToken();
echo '<br /><a href="' . $facebook->getLogoutUrl() . '">logout</a>';
} catch(FacebookApiException $e) {
// If the user is logged out, you can have a
// user ID even though the access token is invalid.
// In this case, we'll get an exception, so we'll
// just ask the user to login again here.
$login_url = $facebook->getLoginUrl( array(
'scope' => 'publish_stream'
));
echo 'Please <a href="' . $login_url . '">login.</a>';
error_log($e->getType());
error_log($e->getMessage());
}
} else {
// No user, so print a link for the user to login
// To post to a user's wall, we need publish_stream permission
// We'll use the current URL as the redirect_uri, so we don't
// need to specify it here.
$login_url = $facebook->getLoginUrl( array( 'scope' => 'publish_stream' ) );
echo 'Please <a href="' . $login_url . '">login.</a>';
}
$facebook_album = $facebook -> api('486769464721177/photos');
foreach($facebook_album['data'] as $d){
?>
<div style="float:left;"><?
echo "<a href=".$d['link']." target='_blank'><img src=\"".$d['source']."\"></a>";
echo count($d['likes']);
?><button><a href="https://graph.facebook.com/me/og.likes?<?print ('access_token='.$access_token.'&method=POST&object='.$d['link']);?>?>">J'aime</a></button><?
</div>
<?
}
?>如您所见,我现在要求用户使用我创建的应用程序登录,以获得“publish_actions”授权以及访问令牌。我现在有两个问题:第一,是关于登录。如果你完全不在facebook上登录的话,登录会很好。但是,如果您已经登录,则有一个注销按钮,该按钮由以下行调用。
echo '<br /><a href="' . $facebook->getLogoutUrl() . '">logout</a>';当用户点击这个页面,页面重新加载时,用户仍然有一个活动会话,但是如果他试图访问Facebook网站,他会发现自己被注销了。因此,我需要的是一个‘销毁会话’,而不是这个注销按钮。
我遇到的另一个问题是:当用户登录并获得访问令牌时,他应该能够喜欢在foreach循环中调用的对象。但是,当他尝试这样做时,他从Graph中得到了这个错误:
{
"error": {
"message": "(#100) Like actions are not yet supported against objects of this type.",
"type": "OAuthException",
"code": 100
}
}我在这里急切地寻求帮助,我确信我想要达到的目标并不复杂,但这是我第一次在facebook的API中弄脏我的手,我迷失了方向。
(如果你想看现场直播:http://private.quentindelattre.ch/lab/vote.php)
非常感谢你的帮助
发布于 2013-07-10 16:09:07
脸谱喜欢按钮是每个网页,如果你指定一个工作网页在数据-href属性,点击类似的按钮将喜欢的网页指定。
如果您想让它工作,您的每个图像需要有自己的,公开访问的网页,将提供给数据-href参数。
https://stackoverflow.com/questions/17574529
复制相似问题