2011-01-23 3 views
33

Tôi đã xem qua tài liệu API nhưng không thể tìm thấy nó. Nó sẽ là tốt đẹp để lấy số đó để xem làm thế nào phổ biến một url. Engadget sử dụng nút chia sẻ twitter trên các bài viết nếu bạn đang tìm kiếm một ví dụ. Tôi đang cố gắng làm điều này thông qua javascript. Bất kỳ trợ giúp được đánh giá cao.Có cách nào để nhận số lượt chia sẻ twitter cho một URL cụ thể không?

+0

tính đến tháng 11 năm 2015, không có câu trả lời nào trên trang này hoạt động. – Alex

+0

Điều này là do [các nút Twitter chính thức] (https://about.twitter.com/resources/buttons) đã xóa tùy chọn hiển thị số lượt chia sẻ. –

Trả lời

4

số

Làm thế nào để truy cập vào API đếm để tìm hiểu có bao nhiêu Tweets URL của tôi đã có?

Trong giai đoạn đầu này của nút Tweet, API đếm là riêng tư. Điều này có nghĩa là bạn cần phải sử dụng nút javascript hoặc iframe Tweet của chúng tôi để có thể hiển thị số lượng. Khi quy mô hệ thống của chúng tôi, chúng tôi sẽ xem xét làm cho API đếm công khai cho các nhà phát triển sử dụng.

http://dev.twitter.com/pages/tweet_button_faq#custom-shortener-count

+1

@ user799188 có bản cập nhật cho bạn – panchicore

+4

bạn hoàn toàn có thể! – jahrichie

+0

Liên kết bị hỏng ngay bây giờ. –

79

Bạn có thể sử dụng các thiết bị đầu cuối API sau,

http://cdn.api.twitter.com/1/urls/count.json?url=http://stackoverflow.com 

Lưu ý rằng http://urls.api.twitter.com/ endpoint là not public.)

Các thiết bị đầu cuối sẽ trả về một chuỗi JSON tương tự ,

{"count":27438,"url":"http:\/\/stackoverflow.com\/"} 

Trên máy khách, nếu bạn đang thực hiện một yêu cầu để có được số lượng chia sẻ URL cho tên miền của riêng bạn (một kịch bản đang chạy từ), thì yêu cầu AJAX sẽ hoạt động (ví dụ: jQuery.getJSON). Nếu không, đưa ra một yêu cầu JSONP bằng cách thêm callback=?:

jQuery.getJSON('https://cdn.api.twitter.com/1/urls/count.json?url=http://stackoverflow.com/&callback=?', function (data) { 
 
    jQuery('#so-url-shares').text(data.count); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="so-url-shares">Calculating...</div>

Cập nhật:

Tính đến ngày 21 tháng 11 năm 2015, theo cách này nhận được đếm twitter cổ phiếu, không hoạt động nữa. Đọc thêm tại: https://blog.twitter.com/2015/hard-decisions-for-a-sustainable-platform

+0

Có bất kỳ giải pháp nào được bật SSL (https: //) không? –

+15

nó hỗ trợ jsonp, chỉ cần thêm & callback = my_callback – Davorin

+0

Cảm ơn rất nhiều! bạn tiết kiệm thời gian của tôi. –

1

Nhận xét này https://stackoverflow.com/a/8641185/1118419 đề xuất sử dụng API Topsy. Tôi không chắc chắn rằng API là đúng:

Twitter phản ứng cho www.e-conomic.dk:

http://urls.api.twitter.com/1/urls/count.json?url=http://www.e-conomic.dk

cho thấy 10 count

phản ứng Topsy fro www.e- conomic.dk:

http://otter.topsy.com/stats.json?url=http://www.e-conomic.dk

.210

18 count

+1

topsy có phân tích nguồn cấp dữ liệu twitter trong nhà, tôi nghĩ rằng họ tải dữ liệu twitter trong thời gian thực và có chiến lược tập hợp khác với twitter. – panchicore

+0

nhưng họ có một số nắp thực sự nhỏ cho các yêu cầu - không? –

+0

@Andriy Kuba: Nó không hiển thị bất kỳ kết quả nào cho http://otter.topsy.com/stats.json?url=http://www.e-conomic.dk trong Google Chrome. Bạn có biết tại sao? –

5

này là dành cho url với https (đối với Brodie) https://cdn.api.twitter.com/1/urls/count.json?url=YOUR_URL

+2

Đây thực sự là url chính xác để truy vấn đếm tweet, https hay không. http://urls.api.twitter.com/1/urls/count.json?url= không phải là API công khai và không được sử dụng. –

0

Tôi chỉ cần đọc nội dung vào một đối tượng JSON qua php, sau đó phân tích nó ra ..

<script> 
<?php 
$tweet_count_url = 'http://urls.api.twitter.com/1/urls/count.json?url='.$post_link; 
$tweet_count_open = fopen($tweet_count_url,"r"); 
$tweet_count_read = fread($tweet_count_open,2048); 
fclose($tweet_count_open); 
?> 
var obj = jQuery.parseJSON('<?=$tweet_count_read;?>'); 
jQuery("#tweet-count").html("("+obj.count+") "); 
</script> 

Đủ đơn giản và nó phục vụ mục đích của tôi một cách hoàn hảo.

+0

Điểm cuối urls.api.twitter.com là [cấm] (http://stackoverflow.com/a/9031032/1269037) từ mục đích sử dụng công cộng. –

1

Bằng cách này bạn có thể sử dụng nó với jquery. Div id = "twitterCount" sẽ được điền tự động khi trang được tải.

 

    function getTwitterCount(url){ 
     var tweets; 
     $.getJSON('http://urls.api.twitter.com/1/urls/count.json?url=' + url + '&callback=?',    function(data){ 
     tweets = data.count; 
     $('#twitterCount').html(tweets); 
    }); 
    } 
    var urlBase='http://http://stackoverflow.com'; 
    getTwitterCount(urlBase); 

Chúc mừng!

+0

Điểm cuối urls.api.twitter.com là [cấm] (http://stackoverflow.com/a/9031032/1269037) từ mục đích sử dụng công cộng. –

+1

Thks @DanDascalescu, xin lỗi vì nguồn cấp dữ liệu sau này của tôi, khi tôi viết câu trả lời điều này là có thể nhưng bây giờ nó không còn nữa. Xin vui lòng bỏ qua câu trả lời của tôi ở trên, đây là biện minh twitter: https://twitter.com/twitterdev/status/667836799897591808 –

1

Có, có. Chừng nào bạn làm như sau:

  1. Issue một yêu cầu JSONP đến một trong các url:

    http://cdn.api.twitter.com/1/urls/count.json?url=[URL_IN_REQUEST]&callback=[YOUR_CALLBACK]

    http://urls.api.twitter.com/1/urls/count.json?url=[URL_IN_REQUEST]&callback=[YOUR_CALLBACK]

  2. Hãy chắc chắn rằng yêu cầu bạn đang tạo từ cùng một tên miền với tên [URL_IN_REQUEST]. Nếu không, nó sẽ không hoạt động.

    Ví dụ:

    Làm yêu cầu từ example.com yêu cầu đếm example.com/page/1. Nên làm việc.

    Thực hiện yêu cầu từ another-example.com để yêu cầu số lượng example.com/page/1. Sẽ KHÔNG hoạt động.

0

Lớp Javascript này sẽ cho phép bạn tìm nạp thông tin chia sẻ từ Facebook, Twitter và LinkedIn.

Ví dụ về việc sử dụng

<p>Facebook count: <span id="facebook_count"></span>.</p> 
<p>Twitter count: <span id="twitter_count"></span>.</p> 
<p>LinkedIn count: <span id="linkedin_count"></span>.</p> 
<script type="text/javascript"> 
    var smStats=new SocialMediaStats('https://google.com/'); // Replace with your desired URL 
    smStats.facebookCount('facebook_count'); // 'facebook_count' refers to the ID of the HTML tag where the result will be placed. 
    smStats.twitterCount('twitter_count'); 
    smStats.linkedinCount('linkedin_count');  
</script> 

Tải

https://404it.no/js/blog/SocialMediaStats.js

Thêm ví dụ và tài liệu

Javascript Class For Getting URL Shares On Facebook, Twitter And LinkedIn

4

Vâng,

https://share.yandex.ru/gpp.xml?url=http://www.web-technology-experts-notes.in 

Thay thế "http://www.web-technology-experts-notes.in" với "của bạn URL trang web đầy đủ".

Kiểm tra số lượng Chia sẻ Facebook, Twitter, LinkedInPinterest

http://www.web-technology-experts-notes.in/2015/04/share-count-and-share-url-of-facebook-twitter-linkedin-and-pininterest.html

Cập nhật: Tính đến ngày 21 tháng 11 năm 2015, Twitter đã loại bỏ "Tweet đếm điểm cuối "API.

Đọc thêm: https://twitter.com/twitterdev/status/667836799897591808

+1

Điều này đã chết hôm nay. –

+0

Vâng, điều này đã biến mất. Tôi rất thích một câu trả lời cập nhật cho điều này. – lcm

2

Trả lời được phê duyệt là đúng. Có các phiên bản khác của cùng một điểm cuối, được Twitter sử dụng nội bộ.

Ví dụ, nút chia sẻ chính thức với số lượng sử dụng này:

https://cdn.syndication.twitter.com/widgets/tweetbutton/count.json?url=[URL] 

hỗ trợ JSONP là có thêm &callback=func.

+0

Cảm ơn bạn đã cập nhật. Điều này thực sự nên được upvoted nhiều hơn bây giờ! – David

+0

Không còn hoạt động. –

2

Tôi biết đó là câu hỏi cũ nhưng đối với tôi, url http://cdn.api.twitter.com/1/urls/count.json?url=http://stackoverflow.com không hoạt động trong các cuộc gọi ajax do sự cố Cross-origin.

Tôi đã giải quyết bằng cách sử dụng PHP CURL, tôi đã tạo một tuyến đường tùy chỉnh và gọi nó qua ajax.

/* Other Code */ 
    $options = array(
    CURLOPT_RETURNTRANSFER => true, // return web page 
    CURLOPT_HEADER   => false, // don't return headers 
    CURLOPT_FOLLOWLOCATION => true, // follow redirects 
    CURLOPT_MAXREDIRS  => 10,  // stop after 10 redirects 
    CURLOPT_ENCODING  => "",  // handle compressed 
    CURLOPT_USERAGENT  => "test", // name of client 
    CURLOPT_AUTOREFERER => true, // set referrer on redirect 
    CURLOPT_CONNECTTIMEOUT => 120, // time-out on connect 
    CURLOPT_TIMEOUT  => 120, // time-out on response 
); 
$url = $_POST["url"]; //whatever you need 
if($url !== ""){ 
    $curl = curl_init("http://urls.api.twitter.com/1/urls/count.json?url=".$url); 
    curl_setopt_array($curl, $options); 
    $result = curl_exec($curl); 
    curl_close($curl); 
    echo json_encode(json_decode($result)); //whatever response you need 
} 

Điều quan trọng là sử dụng một POST vì passsing url trong GET vấn đề yêu cầu nguyên nhân.

Hy vọng điều đó sẽ hữu ích.

+0

Nó vừa phá vỡ ngày hôm nay. –

+0

Có. Gotta tìm một cách khác – steo

49

này là không thể được nữa, kể từ hôm nay, bạn có thể đọc thêm ở đây:

https://twitter.com/twitterdev/status/667836799897591808

Và không có kế hoạch để thực hiện nó lại, không may.

Bỏ phiếu để người dùng không mất thời gian thử.

Cập nhật: Tuy nhiên Có thể qua http://opensharecount.com, họ cung cấp một thả thay thế cho URL JSON tin cũ dựa trên các tìm kiếm thực hiện thông qua API (do đó bạn không cần phải làm tất cả những công việc) .

Nó dựa trên các điểm cuối của Tìm kiếm API REST. Hệ thống mới của nó, vì vậy chúng ta sẽ thấy nó như thế nào. Trong tương lai chúng ta có thể mong đợi nhiều hệ thống tương tự hơn, bởi vì có nhu cầu rất lớn.

+1

Vâng, nó không chắc chắn nào được nêu ra rằng họ sẽ không thực hiện nó một lần nữa. Trong các bài đăng blog mới nhất của họ, họ đã yêu cầu một số phản hồi và được đề cập đến có thể xảy ra lần nữa. Một anh chàng hỏi họ trực tiếp trên diễn đàn twitter: https://twittercommunity.com/t/equivalent-of-url-count-in-tweets-in-the-near-future/57454 – Anselme