2011-10-14 41 views
1

我是Facebook應用程序開發新手,也是JavaScript和PHP編程的新手。單擊取消或關閉按鈕時發出「請求對話框」requestCallback

我目前正在開發一個Facebook應用程序,但目前卡住了請求對話窗口。

當出現請求對話框時,我選擇我想要的朋友,然後單擊「發送請求」,執行requestCallback(響應),並按預期通知獲取請求的朋友。但是,如果我單擊「取消」或藍色關閉按鈕,requestCallback(響應)也會執行,但選定的朋友沒有得到有關請求的通知。

這裏是我的代碼:

function requestCallback(response) 
{ 
    //console.log(response); 
    location.href='step2.php'; 
} 

所以,不管我點擊「取消」或關閉按鈕,上面的腳本仍執行(移動到step2.php我指定的頁面。)

什麼我想要的是當用戶點擊取消按鈕或關閉模式窗口按鈕時,頁面停留在同一頁面。

任何人都知道如何解決這個問題?

謝謝!

回答

5

您可以查看Facebook 響應對象中的內容,因爲如果請求已發送或不發送,它將不會相同!

喜歡的東西:

function requestCallback(response) 
{ 
    if(response && response.request_ids) { 
     // Here, requests have been sent, facebook gives you the ids of all requests 
     //console.log(response); 
     location.href='step2.php'; 
    } else { 
     // No requests sent, you can do what you want (like...nothing, and stay on the page). 
    } 
} 

或者,如果您使用的是新的結構(要求2.0高效):

function requestCallback(response) 
{ 
    if(response && response.request) { 
     // Here, requests have been sent, facebook gives you the request and the array of recipients 
     //console.log(response); 
     location.href='step2.php'; 
    } else { 
     // No requests sent, you can do what you want (like...nothing, and stay on the page). 
    } 
} 

看響應對象,使你的病情的結構。即使當您點擊關閉時,回調也會被解除,以便您有可能注意到您的用戶何時退出對話。您需要確認他是否發送了請求,並按照您的要求行事! :)

此外,一些重要的事情: Facebook上更新了自己的請求,系統在幾個星期前,可以使你的應用程序設置「要求2.0」。它在默認情況下處於關閉狀態,但如果您將其激活,則向人發送請求時,響應對象的結構將發生變化。所以你必須在回調中更新你的狀況!

一切都在這裏解釋: http://developers.facebook.com/blog/post/569/

+1

+1,添加了新的結構部分,你的答案! – ifaour

+0

謝謝,完全忘了添加這部分,因爲它在鏈接! :) –

+0

謝謝你們,看起來像我需要學習如何編寫JavaScript內的if和其他:) – mokalovesoulmate

相關問題