2010-09-27 60 views
20

我使用官方Tweet Button from Twitter來允許用戶共享我的網站。Twitter Twitter Button不計算

按鈕本身工作得很好,但計數器不工作,並始終保持爲零。 (你鳴叫後,它遞增的客戶端,但如果按F5,將再次爲零)

這是我非常簡單的代碼,包括按鈕:

<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.whattheplace.com/Show/1/" data-count="vertical">Tweet</a> 
<script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> 

指定的URL( http://www.whattheplace.com/Show/1/)是一個規則的URL,返回一個帶有HTTP代碼200的網頁,即沒有重定向或類似的東西可能會混淆Twitter。

我在http://www.whattheplace.com/static/tweetbutton.html上準備了一個小例子,您可以在其中看到問題。在http://www.whattheplace.com的「真實」頁面上,Tweet按鈕由AddThis包裝,但問題完全相同。

我在想這可能與新的Twitter網址shortener(t.co)有關,但是我無法證明它,它似乎在其他人的頁面上工作得很好。

回答

1

我也有這個問題,並且發現它與我設置的「canonical」鏈接標記的值有關。它被設置爲http:// www.iphone4simulator.com,但tweet按鈕共享http://iphone4simulator.com,因爲我已經設置了我的DNS服務器以從地址中刪除www字符串。只要我將標記中的規範URL值更改爲後者,該按鈕就像一個魅力!

+0

謝謝,但這似乎不是問題所在。我已經在http://whattheplace.com/static/tweetbutton.html上準備了一個新示例。我點擊了所有推文按鈕,但只有最後兩個(指向.html文件的那些)按鈕纔算數。我沒有看到最後兩個和第三個和第四個URL之間有什麼區別,因爲兩個都是沒有重定向的有效HTML文檔(前兩個URL重定向,這可能是他們不工作的原因)。 – ChrisM 2010-09-28 14:34:35

1

我認爲你缺少數據通過=「#」

<a href="http://twitter.com/share" class="twitter-share-button" data-url="http://www.whattheplace.com/Show/1/" data-count="vertical" data-via="#">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script> 

如果其周圍的添加敲擊該即時通訊相當肯定,你應該「混」,它與Twitter的按鈕本身,shouldn't你是使用類似的東西:

<!-- AddThis Button BEGIN --> 
<div class="addthis_toolbox addthis_default_style"> 
<a class="addthis_button_facebook_like" fb:like:layout="button_count"></a> 
<a class="addthis_button_tweet"></a> 
<a class="addthis_counter addthis_pill_style"></a> 
</div> 
<script type="text/javascript">var addthis_config = {"data_track_clickback":true};</script> 
<script type="text/javascript" src="http://s7.addthis.com/js/250/addthis_widget.js#username=viralizate"></script> 
<!-- AddThis Button END --> 

我沒有找到足夠清晰的問題,希望它有幫助! 如果你進一步解釋我會很樂意編輯它! - 如果我知道答案;)

祝你好運!

特魯法

+0

我嘗試了數據通過,但它只是在微博文本中添加了一個「via @#」,根據文檔(http://dev.twitter.com/pages/tweet_button)我認爲它應該是正確的。但恐怕我不明白你的第二個建議。問題是來自AddThis的獨立,它也發生在原始的Tweet按鈕上。 – ChrisM 2010-10-18 19:18:02

15

有幾個可能的問題與此相關。其中之一是,如果鏈接縮短,Twitter將不會添加它,除非添加「counturl」url屬性。

此外,Twitter不會計算來自受保護賬戶(不分享他們的推文的賬戶)的推文。

請讓我知道,如果這不提供解決方案。

乾杯!

+1

我試着用http://whattheplace.com/static/tweetbutton.html(底部的兩個按鈕)上的數據counturl與未受保護的Twitter帳戶@chrism_test,但它仍然無法正常工作。 :-( – ChrisM 2010-10-18 19:14:22

1

,如果你想顯示計數和這牽涉到URL縮短服務(和總是有),你必須同時使用「數據計數」或「數據鏈接」:

data-url="http://dev.twitter.com/pages/tweet_button" 
    data-count="vertical" 
1

它不是數據-url,因爲這是縮短的網址...你不必擔心,包括我不認爲。設置data-counturl = THE_PAGES_ACTUAL_URL,以便不管用戶使用哪種縮略詞,實際url的計數都會遞增並顯示。所以像這樣的東西...data-counturl="<?php echo $_SERVER['PHP_SELF']; ?>"

---嗯......沒關係,我說話太快......

+2

這是非常重要的部分,'data-counturl'屬性必須指向EXPANDED FINAL DESTINATION – Dex 2012-01-10 04:21:29

2

我有幸從URL參數方法切換到數據屬性方法。

function twtrButton(url, text, configs){ 
    // Create a link 
    var params = { 
    rel: 'canonical', 
    'data-count': 'horizontal', 
    href: 'http://twitter.com/share/' 
    }; 
    if (url) { 
    params['data-url'] = url; 
    params['data-counturl'] = url; 
    } 
    if (text) { 
    if(text.length > 90){ 
     text = text.substring(0, 90); 
     text += '...'; 
    } 
    params['data-text'] = text; 
    } 
    if (configs) { 
    if (configs.via) { 
     params['data-via'] = configs.via; 
    } 
    if (configs.related) { 
     params['data-related'] = configs.related; 
    } 
    } 
    var link = $('<a>', params).addClass('twitter-share-button'); 
    return link; 
} 

此片段假設jQuery 1.5或更高版本。