2013-04-03 44 views
2

我有簡單的erb模板,包含以下html代碼和javascript。如何將Google +共享功能與Ruby on Rails應用程序集成?

<a class='share_on_gplus g-plus' data-social-action='share' data-medium='googleplus' data-content='q_name' href='https://plus.google.com/share?url=encodeURIComponent(URL).replace('%20','+') onclick="javascript:window.open(this.href,'','menubar=no,toolbar=no,resizable=yes,scrollbars=yes,height=auto,width=600');return false';">Share with Google+ </a> 

<script src="https://apis.google.com/js/client.js"></script> 
<script type="text/javascript"> 
    function load() { 
     gapi.client.setApiKey('XXXXXXXXXXXXXXXXXXx'); 

     } 

    window.___gcfg = { 
    lang: 'en-US', 
    parsetags: 'onload' 
    }; 

    (function() { 
    var po = document.createElement('script'); 
    po.type = 'text/javascript'; 
    po.async = true; 
    po.src = 'https://apis.google.com/js/plusone.js?onload=load'; 
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); 
    })(); 

</script> 

我的Google + API服務已啓用。當我在谷歌加彈出點擊分享按鈕,我得到了一個錯誤:

There was a problem saving your post. Please try again. I am not able to share on google+. How do I resolve this error?

+1

如果使用共享URL而不是按鈕,甚至無法加載plusone.js文件。似乎還有其他事情正在發生。您是否在您的網站上使用JavaScript客戶端庫來實現其他功能? – BrettJ

+0

不,我正在使用僅用於Google +共享的javaScript客戶端庫。 –

+0

在這種情況下,您根本不需要加載client.js文件。你只需要plusone.js。您也不需要設置使用共享或+ 1ing功能的API密鑰。我會放棄你的「加載」功能和onload參數。 – BrettJ

回答

0

其實我需要提到url選項中的真實域名和問題得到解決。而已!!!

3

如果這是你的代碼剪切和粘貼,我覺得至少有兩個問題:

1)您的href值以單引號開頭,以雙引號結尾,並且有幾個單引號作爲其一部分。

2)Google共享代碼和bot使用附加到共享元素的屬性來確定共享的內容,包括href屬性。它看起來像你試圖自己彈出一個窗口,並以這種方式操縱共享。

我會先嚐試做一個更基本的分享按鈕(記錄爲herehere),並確認它可用於共享頁面。如果確實有效,那麼你可以從那裏開始剪裁,但我不認爲打開一個新窗口會按你想要的方式工作。

相關問題