2012-05-12 151 views
0

我想使用Grails Facebook Authentication plugin,但我遇到了問題。我(我相信)成功安裝了該插件,在頁面上放置了一個Facebook連接控件,並運行了安裝腳本。Facebook連接問題與Grails

當我點擊Facebook Connect按鈕時,我被正確地帶到Facebook,在那裏我登錄正確。此時彈出窗口關閉,沒有任何反應。我有一個自定義的FacebookAuthService,但內部沒有任何斷點被調用。我相信我有1)不正確地連接了服務或2)弄糟我的Facebook設置,以便我沒有收到信息,但我不知道如何診斷問題。

當我在本地運行的應用程序,它運行在http://localhost:8080/TestApp
在我的Facebook應用程序設置我已經嘗試使用 「HTTP:// localhost」,則 「HTTP://本地主機:8080」 和「HTTP:// localhost:8080/TestApp「作爲站點URL,並且我有」localhost「作爲App域。我錯過了什麼?

這裏是GitHub Project的鏈接(我已經更改了fb私鑰)。

任何想法?謝謝。

回答

1

由於Facebook的Javascript SDK,Button只在客戶端授權。請在susseccful authization後重新加載頁面,如:

FB.getLoginStatus(function(response) { 
    if (typeof(response) == 'undefined') { 
     return 
    } 
    if (response.status == 'connected') { 
     window.location.reload(); 
    } 
    }) 
+0

不應該對我的應用程序的下一個請求進行授權並正確工作嗎?我的應用永遠不會看到我通過身份驗證。我會在哪裏粘貼你粘貼的代碼?我可以在哪裏放置回調網址?非常感謝開發這個插件! – skaz

+0

是的,新的請求必須通過認證(如果沒有,請嘗試F5/Commad + R - 配置有問題)。這段代碼是一個Java腳本,你應該把它放在頁面的某個地方,例如放在'window.fbAsyncInit'中。順便說一句,現在我發現我需要製作更靈活的taglib,因爲此時你不能使用這個處理程序而無需編寫自己的JavaScript代碼 –

+0

既然你的插件創建了'window.fbAsyncInit'代碼,我該如何獲得我的FB.getLoginStatus代碼在那裏?謝謝。 – skaz

0

在這種情況下,JS SDK目前不支持非標準端口,但是週二來,這個問題將得到解決,它將再次支持它。

+0

謝謝。你有更多的信息嗎?我可以認爲它會在週二之後繼續支持它嗎? 「網站網址」本質上是回調網址嗎?抱歉轟炸你 - 謝謝你的迴應。 – skaz

+0

未來將會得到支持。沒有'回調網址'的概念 - 「網站網址」(和其他網站)僅用於驗證app_id和域之間的一致性。 –