當有人試圖通過Facebook登錄我的網站時,他被重定向到一個頁面,他看到所有請求的權限,然後單擊以允許/禁止它們。通過javascript打開Facebook連接窗口?
有沒有什麼辦法讓這個頁面作爲一個分層窗口通過javascript打開而不需要用戶離開我的網站?例如,所以我的網站將在Facebook連接窗口懸停在其上方的背景中。
有什麼想法嗎?
當有人試圖通過Facebook登錄我的網站時,他被重定向到一個頁面,他看到所有請求的權限,然後單擊以允許/禁止它們。通過javascript打開Facebook連接窗口?
有沒有什麼辦法讓這個頁面作爲一個分層窗口通過javascript打開而不需要用戶離開我的網站?例如,所以我的網站將在Facebook連接窗口懸停在其上方的背景中。
有什麼想法嗎?
答案是否定的。另外,你不能在IFrame中加載登錄頁面,因爲Facebook有該頁面的幀斷路器。
您正在談論的網頁叫做OAuth dialog。默認情況下,由於「display」參數設置爲「page」(其他值包括:popup,iframe,touch和wap),所以請求用戶登錄您的應用將導致頁面重定向。你想要的是調用這個對話框,顯示設置爲「iframe」。但是,文檔states:「如果指定iframe,則必須具有有效的access_token。」而且,要獲得access_token,用戶需要先登錄到您的應用程序。因此,您將無法在嵌入式IFrame中顯示登錄頁面。
但是,一旦用戶使用基本權限設置授權您的應用程序,您可以使用對話框的顯示模式向「iframe」(因爲您擁有access_token)提示其他權限。
因此,如果我想讓他登錄到我的網站時,最好的選擇是使用彈出窗口? – 2011-06-11 23:34:50
最好的選擇是使用JavaScript SDK的默認行爲(即頁面重定向),因爲彈出窗口可能由於各種原因而無法打開。例如,Internet Explorer的文檔[states](http://msdn.microsoft.com/en-us/library/ms537632(v = vs.85).aspx):「彈出窗口阻止程序阻止腳本啓動的彈出窗口,在沒有用戶點擊鏈接的情況下創建的窗口。「由於JS SDK的錯誤,我看到了其他故障。 – 2011-06-12 00:19:01
是的,但客戶堅持認爲你必須保持在同一個網站,而不是重定向。爲此,彈出窗口是最好的選擇? (無論如何,它們只會在點擊鏈接後觸發) – 2011-06-26 14:18:56
我支持大衛的回答。另外,如果您以某種方式在iframe或div中加載登錄對話框,用戶將無法知道他/她是否真的將登錄憑據提交給Facebook或其他某個網站。
還不能評論。 :(
關於用戶無法辨別它是否真的是facebook的好處。 – 2011-06-11 23:36:01
我使用Facebook上的彈出式內,它工作得很好。
1)「假」 Facebook的登錄鍵式
以按鈕的屏幕截圖,包裹它的IMG標籤用屬性的一個標籤
href="<?= $facebook->getLoginUrl(...); ?>"
onclick="facebookPopup(this.href); return false"
2)創建JavaScript彈出功能
function facebookPopup (url) {
popup = window.open(url, "facebook_popup",
"width=620,height=400,status=no,scrollbars=no,resizable=no");
popup.focus();
}
3)創建FB Connect「登陸頁面」
創建一個php文件,用於在完成連接對話框時處理用戶數據,例如,如果他是新用戶,則保存他的用戶名和facebook-uid,或者只是將他登錄到if他的身份證號碼已經知道。 然後通過的Javascript關閉彈出窗口並刷新你的主頁:
function CloseAndRefresh()
{
window.opener.location.href = window.opener.location.href;
window.close();
}
您可以通過<body onload='CloseAndRefresh()'>
觸發功能還記得在登錄-URL(REDIRECT_URI)到指定的LandingPage的URL。 另外,如果您在登錄URL中指定'display'=>'popup',它將顯示「Permission Request」-Dialog的精簡版本。
我認爲你可以使用jQuery彈出並加載iframe ...... – Anish 2011-06-07 06:31:35
@Anish在那裏沒有辦法做到這一點? – 2011-06-08 16:02:21