2011-08-14 3 views
1

로그인 한 사용자의 모든 친구를 얻고 표시하려고합니다. 각 "친구"는 하이퍼 링크로 나열됩니다. 그러나 하이퍼 링크를 누르면 아무 일도 일어나지 않습니다. 페이스 북 로고 만 입력하면 프로필에 리디렉션됩니다. 그것을하는 올바른 방법일까요? 적어도 코드는 친구 이름과 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 ?> 

나는 페이스 북에 응용 프로그램을 갈 때 나는 내가 그래서 앱이 호스팅되는 URL로 리디렉션하고 수행 할 때 내가 로그인 프롬프트 오전 로그인하고 있지 않다, 그러나 그것은이다 페이스 북의 iframe 안에 있지 않습니다.

답변

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/' 
) 
); 
?> 
관련 문제