我正在尝试获取登录用户的所有朋友,然后显示它们。每个“朋友”都被列为超链接。但是当我点击超链接时没有任何反应。我只是提示有一个Facebook徽标,当我点击它时,我被重定向到个人资料。它甚至是正确的做法吗?至少代码会正确打印朋友的姓名和身份。
$friends = $facebook->api('/me/friends');
$friends = $friends['data'];
foreach($friends as $friend) {
echo "<a href='http://www.facebook.com/profile.php?id=".$friend['id']."'>".$friend['name']."</a><br />";
}
我在canvas url的文件夹中的索引文件中有这个。
<?php if ($user): ?>
<a href="<?php echo $logoutUrl; ?>">Logout</a>
<?php else: ?>
<script>top.location.href = "<?php echo $loginUrl ?>"</script>
<?php endif ?>
当我在Facebook上运行应用程序并且我没有登录时,我提示登录,当我这样做时,我被重定向到托管应用程序的网址,但它不在Facebook的iframe内。
答案 0 :(得分:1)
这是因为您不能拥有包含Facebook域名页面的应用程序或标签iFrame。您需要突破iFrame才能显示朋友个人资料 - 最简单的方法是使用您的链接指定目标属性。
foreach($friends as $friend) {
echo "<a target='_top' href='http://www.facebook.com/profile.php?id=".$friend['id']."'>".$friend['name']."</a><br />";
}
要回答问题的第二部分,您需要使用登录名指定重定向URI:
<?php
$loginUrl = $facebook->getLoginUrl(
array(
'redirect_uri' => 'http://apps.facebok.com/yourapp/'
)
);
?>