0

我試圖創建一個測試應用程序的源是以下(的index.php):Facebook的JS API錯誤

<?php 
include_once 'facebook/facebook.php'; 

$facebook = new Facebook(array(
    'appId' => 'YYYYYYYYYYYYYYYY', 
    'secret' => 'XXXXXXXXXXXXXXXXXXXXXX', 
)); 

$user = $facebook->getUser(); 

if($user) 
{ 
    try 
    { 
    $user_profile = $facebook->api('/me'); 
    } 
    catch(FacebookApiException $e) 
    { 
    error_log($e); 
    $user = null; 
    } 
} 

if(! $user) 
{ 
    echo "<script type=\"text/javascript\">top.location.href='" . $facebook->getLoginUrl(array(
    'scope' => 'publish_actions,publish_stream', 
    'redirect_uri' => 'http://apps.facebook.com/MYAPPURL/' 
)) . "'</script>"; 
    exit; 
} 
?> 
<!doctype html> 
<html xmlns:fb="http://www.facebook.com/2008/fbml"> 
<head> 
<title>TribusWar</title> 
<meta http-equiv="content-type" content="text/html; charset=utf-8" /> 
<script src="http://connect.facebook.net/en_US/all.js#appId=YYYYYYYYYYYYYYYY&amp;xfbml=1"></script> 
</head> 
<body> 
<input type="button" value="Compartilhar" id="xxxxx" /> 
</body> 
<script type="text/javascript"> 
document.getElementById('xxxxx').addEventListener('click', function() 
{ 
    FB.ui({ 
    method: 'feed', 
    display: 'iframe', 
    name: 'Dialog Name', 
    caption: 'Caption for dialog', 
    description: 'Lorem ipsum dolor sit amet...' 
    }, function() 
    { 
    alert(arguments); 
    }); 
}, false); 
</script> 
</html> 

有了這個代碼,我想表現的時候觸發一個發佈在頁面上的按鈕點擊對話框。當頁面加載時,它會產生一個錯誤,單擊該按鈕時,會出現另一個錯誤,而不是所示的對話框:

Firebug Console http://img17.imageshack.us/img17/8347/capturadetelayo.png

我不知道什麼是與此走錯了。我不知道publish_stream權限是否真的有必要,因爲我試圖使用facebook對話框。誰能幫我?

回答

2

由於納瓦薩爾瓦多(和調試器控制檯)說,你需要添加:在你的代碼的<body>某處

<div id="fb-root"></div> 

。此外,您的最終<script>塊應該在</body>標記之前(每個約定)。您不需要任何額外的權限來顯示對話框;不需要publish_stream

+0

此外,我已經添加了'link'和'picture'的選項 – Wanderson

+0

反正是有沒有辦法簡單地添加用戶名到對話框文本? – Wanderson

+0

並不是說我知道了我的頭頂部;但是這是一個不同的問題。 –

1

嘗試添加

<div id="fb-root"></div> 

<script