2013-06-13 22 views
8

Với Twitter tắt vòi API 1.0 vào ngày 6/11/2013, chúng tôi có một số trang web hiện không hiển thị dòng thời gian. Tôi đã tìm kiếm một ví dụ "Nếu bạn đã làm điều đó, bây giờ hãy làm điều này". Đây là thông báo của Twitter. https://dev.twitter.com/blog/api-v1-is-retiredCần một ví dụ đơn giản về API Twitter v1.1 để hiển thị dòng thời gian bằng cách sử dụng jQuery hoặc C# ASP.NET

Đây là những gì chúng tôi đã làm ban đầu để hiển thị dòng thời gian Twitter thông qua API 1.0.

<div id="twitter"> 
    <ul id="twitter_update_list"></ul> 
    <script type="text/javascript" src="http://twitter.com/javascripts/blogger.js"></script> 
    <script type="text/javascript" src="http://api.twitter.com/1/statuses/user_timeline/companytwitterhandle.json?callback=twitterCallback2&amp;count=1"></script> 
    <div style="float:left;"><a href="https://twitter.com/companytwitterhandle" target="_blank">@companytwitterhandle</a> | </div> 
    <div class="twitterimg">&nbsp;</div> 
</div> 

Ban đầu tôi đã thử thay đổi phiên bản trong URL tham chiếu JavaScript như vậy, không hoạt động.

<script type="text/javascript" src="http://api.twitter.com/1.1/statuses/user_timeline/companytwitterhandle.json?callback=twitterCallback2&amp;count=1"></script> 

Sau đó, tôi đã xem tài liệu API Twitter (https://dev.twitter.com/docs/api/1.1/overview) thiếu một ví dụ chuyển tiếp rõ ràng. Tôi không có 4 hoặc 5 giờ để nghiên cứu kỹ, hoặc vào Câu hỏi thường gặp này (https://dev.twitter.com/docs/faq#17750).

Sau đó, tôi tìm thấy tài liệu API này về dòng thời gian của người dùng. Vì vậy, tôi đã thay đổi URL một lần nữa như hình dưới đây. https://dev.twitter.com/docs/api/1.1/get/statuses/user_timeline

<script type="text/javascript" src="https://api.twitter.com/1.1/statuses/user_timeline.json?screen_name=companytwitterhandle&amp;count=1"></script> 

Điều đó không hiệu quả.

Sử dụng jQuery hoặc C# ASP.NET MVC, làm cách nào tôi có thể chuyển giao giao diện đó từ Twitter API 1.0 sang Twitter API 1.1? Ưu tiên đầu tiên của tôi là dành cho trình thực hiện phía trình duyệt của khách hàng nếu có thể. Vui lòng bao gồm một ví dụ về mã. Cảm ơn.

Trả lời

0

OK, tôi đã nhận được câu trả lời từ một đồng nghiệp, những người đã phải thực hiện thay đổi tương tự tại công ty của tôi. Đây là giải pháp được mã hóa. Ông đã nhận được điều này từ một công ty mà chúng tôi đã ký hợp đồng để xây dựng một giao diện mới cho chúng tôi với một dòng thời gian Twitter.

Bạn sẽ thấy trong thuộc tính data-widget-id18DigitMagicNumber. Con số đó dường như gắn liền với việc xử lý Twitter của chúng tôi hoặc công ty của chúng tôi. Tôi không biết làm thế nào mà được tạo ra.

Như được chỉ định, một công ty đã ký hợp đồng đã viết mã đó cho chúng tôi, vì vậy tôi sẽ không cố gắng giải thích tất cả những gì nó đang làm.

Tôi đã cắt và dán từ trang này vào một trang web không liên quan và nó hoạt động ngay lập tức. Điều duy nhất tôi thay đổi là để loại bỏ các công ty thực tế xử lý và data-widget-id, và để thay thế duy nhất @ với @@ để thoát khỏi nó trong MVC.

Hy vọng điều này sẽ giúp một số bạn cũng đang di chuyển sang Twitter 1.1. Cảm ơn.

+0

sử dụng này JavaScript thuần túy thay vì jQuery như OP được yêu cầu và dường như không hoạt động. https://jsfiddle.net/3xsjn59u/ –

+0

@WesModes, tôi là OP và mã này hoạt động vào thời điểm đó. Bài đăng đã gần 3 năm nay nên có thể đã lỗi thời vào lúc này. Không có ý nghĩa trong downvoting này mặc dù. :) –

+0

Cũng lưu ý, ví dụ fiddle có chuỗi "18digitmagicnumber" được gán cho data-widget-id, chứ không phải là số thực Twitter. Bạn sẽ cần một số tài khoản thực sự cho Twitter để mẫu mã đó hoạt động. Khi ở nhà tuyển dụng trước đó, tôi không cảm thấy thận trọng khi xuất bản thông tin đó. –

0

Đây là cách tôi đã làm điều này:

Xin xem câu hỏi của tôi và trả lời ở đây:

Authenticate and request a user's timeline with Twitter API 1.1 oAuth

Sử dụng các giải pháp trên và đưa ra các json trở lại trang, cửa hàng nó trong một biến gọi là json.

Đặt tham chiếu đến jQuery và thư viện js twitter-text;

https://github.com/twitter/twitter-text-js

Thêm một div với một id hoặc kết quả để aspx của bạn:

<div id="results"></div> 

Bạn có thể làm cho nội dung với javascript sau:

for (var i = 0; i < json.length; i++) { 
       $("#results").append('<div class="tweet"><p><span><strong> - ' + json[i].created_at.substring(0, 16) + '</span></strong></span><br/>' + twttr.txt.autoLink(json[i].text) + '</p>'); 
       try { 
        for (var j = 0; j < json[i].entities.media.length; j++) { 
         $("#results").append('<a href="' + json[i].entities.media[j].media_url + '"><img src="' + json[i].entities.media[j].media_url + ':thumb" /></a>'); 
        } 

       } catch(e) { 
       } 
      } 
-1

Tạo a JavaScript chỉ giải pháp mà chỉ hoạt động ra khỏi hộp để có được Twitter bài viết trên trang web của bạn mà không sử dụng API mới - phong cách còn lại tùy thuộc vào bạn - bây giờ có thể xác định số lượng tweet quá:

http://goo.gl/JinwJ

Các vấn đề liên quan