6 Eylül Salı ´11
Her yerde twitter naneleri gormeye alistik. Twitter da sitenize public timeline'inizi ekleyebilmeniz icin widget sunuyor ama benim gibi begenmeyip kendiniz tasarlamak istiyorsaniz twitter timeline'inizi api ile jquery'ye isletip kendi tasariminiza gomebilirsiniz.

Bunun icin su dokumani takip edin:http://mfyz.com/dokuman/123
Twitter'in kendi widgetları sayesinde twitter hesabınızın public timeline yani akışını sitenize ekleyebiliyorsunuz fakat o widgetı kullanmak zorunda değilsiniz. Twitter api ile akışınızı jquery ile alıp kendiniz çizebilirsiniz. Aslında çok basit. Twitter apisi zaten size public timeline'ınızı json nesnesi olarak veriyor herhangi bir api key kayıdı yapmaya gerek kalmadan.

Bu json nesnesinin adresi
http://api.twitter.com/1/statuses/user_timeline.json?screen_name=mfyz&count=10&callback=?
Adresteki mfyz benim twitter kullanıcı adım. count parametresiyle de en son pos edilen içeriklerin listesinin boyutunu belirleyebiliyorsunuz, sanırım bu parametrede bir üst limit var.

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);
});
Yukaridaki kod 2 tane değişken tanımlaması ile başlıyor. Birisi api url'i diğeri de html kodunu üreteceğimiz taşıyıcı değişken. Gördüğünüz gibi getJSON fonksiyonu ile url'i belirtip ikinci parametre olarak callback fonksiyonunu tanımladık. Callback fonksiyonu, dönen json nesnesini içerir, bu örnekte "data" adındaki değişken olarak geçiyor. data dizisini dönerek tüm elemanları html kodu üreterek ekleyecegiz listeye.

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.

Hazırlayan: Mehmet Fatih YILDIZ

Popüler Etiketler

htaccess apache route router mod_rewrite konsol terminal opengraph graph api facebook share social ingilizce mssql php auth http apple laptop notebook url örnek kod pharma hack wordpress wanda digital html object css3 browsers support mootools jquery kurulum nasıl ui ux icons proje kampanya media sosyal medya twitter mysql query select icon ikon grafik download css xhtml rss mobile startups blog cms imza signature mail regex internet statistics sql export tool macosx app xmlhttprequest ajax windows optimizasyon analyse procedure less server search google www subdomain redirect crossdomain javascript ipucu iOS db code service radio button switch istatistik insanlar firefox mfyz gimp howto ruffles oyun subversion svn linux fstab ntfs dokuman plugin network developer login session iphone coding ipad ios bootstrap xml nedir kontrol yapıları if while link ubuntu cache editor itunes applications free date diff fql optimization html5 form input style screen portfolio calendar js table spam tarih ie browser pear mdb2 prepare execute pgsql phpstorm jetbrains ide tebrik language meta injection doritos widget job web app open source app store store in-app purchase purchase verification integration storekit itunes connect banner cookie assets sitemap seo framework textarea workspace connect box logo zaman database deployment version control git music wireless tytz webkit lifestream development parse chart osx compile subscription generator internet explorer player license lisans newsletter kitap design compiler on-the-fly