2015-06-30 72 views
0

在我的Rails應用程序中,用戶可以使用他們的Facebook帳戶登錄。截至目前,用戶只需點擊一個鏈接並登錄即可。我想使用Facebook's login button,但它不起作用。Facebook登錄按鈕不呈現 - Rails

我跟隨Facebook的指示和JavaScript SDK添加到我的application.html.erb

然後一個地方所提供的div標籤在我的鏈接,像這樣

<div class="fb-login-button" data-max-rows="1" data-size="xlarge" data-show-faces="false" data-auto-logout-link="false"> 
    <%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) %> 
</div> 

按鈕不顯示。有什麼特別的我需要爲Rails做些什麼?

更新: 用帕文的方法獲得:

undefined method `stringify_keys' for "https://stackoverflow.com/users/auth/facebook":String 

這是我的代碼:

<%= link_to "Sign in with #{provider.to_s.titleize}", omniauth_authorize_path(resource_name, provider) do %> 
    <%= image_tag image_path('facebook-login.jpg') %> 
    <% end %> 
+0

什麼是你的意思是通過按鈕顯示不出來? – Pavan

+0

@Pavan該按鈕從不出現。我仍然看到鏈接。就好像我從來沒有添加div標籤。 – plmok61

+0

我的答案適合你嗎? – Pavan

回答

0

Facebook的使用Javascript SDK將無法呈現登錄按鈕,如果div有一個鏈接它。刪除該按鈕將呈現的鏈接:

<div class="fb-login-button" data-max-rows="1" data-size="xlarge" data-show-faces="false" data-auto-logout-link="false"></div> 

客戶端身份驗證工作流程將略微不同於直接鏈接到omniauth。詳情請查閱this Railscast。 Ryan開始談論大約7分鐘英寸的客戶端認證。單擊登錄按鈕按鈕將在點擊時自動調用FB.login

如果您不需要客戶端身份驗證,並且您只是在尋找渲染按鈕,那麼下載像Pavan建議的圖像圖標可能是最容易的。

+0

當我嘗試添加圖像時,我得到'stringify_keys'的未定義方法錯誤。我的樣子: '<%= link_to「使用#{provider.to_s.titleize}登錄」,omniauth_authorize_path(resource_name,provider)do%> <%= image_tag image_path('facebook-login.jpg') %> <% end %>' – plmok61

0

試試這個:

<%= link_to omniauth_authorize_path(resource_name, provider) do %> 
    Sign in with <%= provider.to_s.titleize %> 
    <%= image_tag image_path('facebook-login.jpg') %> 
<% end %> 

如果你傳遞一個塊,你不應該傳遞「標籤