Bu json nesnesinin adresi
- http://api.twitter.com/1/statuses/user_timeline.json?screen_name=mfyz&count=10&callback=?
Yukaridaki adresi tarayıcınıza yapıştırırsanız json nesnesi alırsınız. jQuery ile bu json nesnesini işleyecegiz. Bunun için jquery'deki getJSON() fonksiyonunu kullanacağız. jQuery, normal .ajax() fonksiyonu gibi bu json nesnesini xmlhttprequest yani ajax ile alıp sonucunda işleyebileceğimiz bir javascript objesi olarak bize sunuyor.
Size bu işi yapan tüm kodu verip sonra kod üstünden açıklayacağım:
- var $tweetList;
- var $tweetUrl = 'http://api.twitter.com/1/statuses/user_timeline.json?screen_name=mfyz&&count=10&callback=?';
- $.getJSON($tweetUrl, function (data) {
- $.each(data, function (i, item) {
- if (i == 0) {
- $tweetList = $('<ul class="tweetList">');
- }
- // handle @reply filtering
- if (item.in_reply_to_status_id === null) {
- $tweetList.append('<li class="tweet_content_' + i + '">' +
- '<p class="tweet_link_' + i + '">' +
- item.text.replace(/#(.*?)(\s|$)/g, '<span class="hash">#$1 </span>')
- .replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, '<a href="$&">$&</a> ')
- .replace(/@(.*?)(\s|\(|\)|$)/g, '<a href="http://twitter.com/$1">@$1 </a>$2') +
- '</p></li>');
- }
- });
- $('#tweetStream').html($tweetList);
- });
Döngü içindeki ilk kontrolde eğer taşıyıcı değişken daha üretilmediyse html listesi olarak üretiliyor. Sonrasında bu liste içine satır olarak ekleyecegiz tüm twitter girdilerini.
Bir diğer kontrol ise sadece doğrudan yazılan tweet'leri işleyecegiz, bunu da yazılan tweet'in cevap olmamasını kontrol ederek yapıyoruz. Sonra da taşıyıcı listeye ekliyoruz tweet edilen yazıyı işleyerek. Bu aşamada ise regular expressions ile @username, #hashtag veya url gibi özel yazıları linklere dönüştürüyoruz.
Döngü bittiğinde de html'inizdeki herhangi bir elemanın içine bu üretilen listeyi basabilirsiniz, bu örnekte tweetStream kimliğine sahip nesnenin içine basılıyor.
Bu kodun calışan örneğini anasayfadaki sağdaki kolonda görebilirsiniz.
Home.js dosyasında yukarıdaki örnegi görebilirsiniz.

Hiç yorum yok:
Yorum Gönder