在Facebook上链接到朋友

时间:2011-08-14 14:12:08

标签: php facebook

我正在尝试获取登录用户的所有朋友,然后显示它们。每个“朋友”都被列为超链接。但是当我点击超链接时没有任何反应。我只是提示有一个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内。

1 个答案:

答案 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/'
  )
);
?>