2011-08-14 15 views
1

私はログインしたユーザーのすべての友人を取得して表示しようとしています。各「友人」はハイパーリンクとしてリストされています。しかし、私がハイパーリンクを押すと何も起こりません。私はFacebookロゴの入力を求められ、そのとき私はプロフィールにリダイレクトされます。それを行う正しい方法ですか?少なくとも、コードは友人の名前とidを正しく表示します。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 />"; 
} 

私はこれをキャンバスのURLのフォルダにあるインデックスファイルに入れています。

<?php if ($user): ?> 
    <a href="<?php echo $logoutUrl; ?>">Logout</a> 
<?php else: ?> 
    <script>top.location.href = "<?php echo $loginUrl ?>"</script> 
<?php endif ?> 

私はFacebook上でアプリケーションを移動して、私は私は私はアプリがホストされているURLにリダイレクトしていないが、それがあるときに、ログインプロンプト午前中にログインしていないですFacebookのiframeの中にはありません。

答えて

1

これは、アプリケーションまたはタブiFrameにFacebookドメインのページを含むことができないためです。フレンドのプロフィールを表示するには、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/' 
) 
); 
?> 
関連する問題