.NET'ten Twitter'a mesaj atmak

0 dakikada yazıldı

50082 defa okundu

Düzenle

Son günlerde minik birkaç araştırma ile bloguma Facebook ve Twitter
entegrasyonu ekledim. Entegrasyondan kastım nedir ilk önce onu açıkliyim
çünkü ortada atla deve bir durum yok :) Bugün kadar RSS'lerim FeedBurner
üzerinden dağıtıldığı için FeedBurner'ın RSS'ten Twitter'a
güncellemeleri post eden özelliğini kullanıyordum. Bu özellik her açıdan
süper olsa da doğal olarak blogdaki post başlığını RSS üzerinden
alabiliyorda ve özetle twitter'a giden mesajı özelleştiremiyordum. İlk
aşamada bu sorunu hallederek blogdan doğrudan Tweeter'a post gönderme
sorununu çözdem. Sonrasında ise Twitter ile Facebook Fan Page bağlantımı
yapan Facebook uygulamasına gıcık olduğum için :) onu da kendi
entegrasyonumla değiştirmek istiyordum. Facebook entegrasyon konusunu
bir başka yazıya bırakacağım. Şimdilik gelin herhangi bir yazılımdan C#
veya VB kodundan nasıl basit bir şekilde profilinizden Tweet'ın mesajı
gönderebilirsiniz konusuna göz atalım.

Bir Twitter Application tanımlamak gerek...

Dışarıdan herhangi bir uygulamanın twitter API'lerini kullanabilmesi
için bu uygulamanınn Consumer key ve Consumer secret denilen iki
anahtara ihtiyacı var. Bu bilgiler olmadan kimse Twitter API'lerini
kullanamıyor. Bu bilgileri almak demek de aslında Twitter'a gidip bir
"Application Submission" yapmak demek. Yani özetle Twitter'a diyoruz ki
biz senin API'lerini kullanacak bir uygulama geliştireceğiz :) Bize
gerekli bilgileri ver!

Burada ufak bir not geçmem lazım. Aslında şu ana kadar gördüğünüz tüm
Twitter Client'ları yani Windows Phone'dakinden tutun iPhone'dakine
kadar hepsi de bu şekilde önce Twitter'a başvurup kendilerini orada
uygulama olarak tanımlatıyorlar ki kendilerine özel key'leri
alabilsinler. Biz de örneğin web sitemiz sanki bir Twitter Client'mış
gibi başvurup gerekli keyleri alacağız. Yani bu işlem genelde Twitter
istemcileri yazmak için yapılsa da sonuç itibari ile Twitter API'lerini
kullanmak isteyen her "yazılım parçasının" kendisini gibi Twitter'a bu
şekilde tanıtması gerekiyor.

https://dev.twitter.com/apps

İşlemler çok basit. Önce yukarıdaki adresi ziyaret edip tabi ki Twitter
kullanıcınızla login oluyorsunuz. "Create New Application" dedikten
sonra sizden uygulamanızı adı, açıklaması, web sitesi gibi bilgiler
sorulacak. Uygulamanın adı atılan her tweet'in altında ufaktan
gözüküyor. Web sitesi bilgisi ise uygulama adı gözüktüğüne tıklandığında
kullanıcıların yönlendirilmesini istediğiniz yer olabilir. Benim
örneğimde ben bu işi blogum için yaptığım için uygulama adını "Daron
Yöndem Blog" koydum, linki ise blogumun adresi olarak verdim.

Bilgier arasında "Callback URL" diye birşey göreceksiniz. Eğer siz de
benim gibi tek bir kullanıcı için yazpıyorsanız bu işi Callback URL'i
boş bırakabilirsiniz. Demek istediğim şu :) şimdi benim blogdan Twitter
API'leri kullanılırken önce Twitter API kullanma iznini çözmemiz sonra
da benim blogun benim twitter hesabından mesaj atma iznini çözmemiz
gerekecek. Doğal olarak benim blogum sadece benim hesabımdan mesaj
atacağı için Callback URL'i boş bırakıyorum. Eğer yazacağınız uygulama
farklı hesaplardan mesaj atacaksa ve hatta (atıyorum) sitenize gelen
insanların Twitter hesapları ile ilgili size "mesaj atma hakkı"
verebilmelerini istiyorsanız o zaman Callback URL'e ihtiyacınız olacak.
Fakat maalesef ben bu yazıda o konulara girmeyeceğim :) Yoksa yazı çok
uzayabilir. Bu yazıdaki amacımız bir yerden sadece tek bir hesaba tweet
atabilmek.

Callback URL'i boş bırakıp geçtikten sonra uygulamanızı yaratmış
olacaksınız. Uygulamanızın logosunu (bende sitemin favicon'u oldu bu) ve
diğer ayarları ayrıca yapabilirsiniz. Unutmamanız gereken ayarlardan
biri "Settings" tabında bulabileceğiniz "Access Type" bilgisi. Bu bilgi
default olarak "Read Only" geliyor. Onu "Read and Write" olarak
değiştirmeyi unutmayın.

Uygulama ayarlarınızın ana sayfasında artık Consumer Key
veConsumer Secret bilgilerini bulabilirsiniz. Geriye kaldı bu
keylerle Twitter API'lerini kullanacak olan uygulamanın sizin twitter
hesabınıza mesaj atma hakkını verip bu sefer de o hakla ilgili token
bilgisini almak :)

Twitter'da keylerimiz ve kendi hesabımıza izin işlemi.
Twitter'da keylerimiz ve kendi hesabımıza izin işlemi.

Yukarıda gördüğünüz ekran direk uygulama ayarlarınızın bulunduğu bölümün
"Details" tabı. Burada yine Consumer Key ve Consumer Secret'ınızı
görebilirsiniz. (Görüntüdeki keyler benim yarattığım test uygulamasının
:) heyecanlanmayın uygulamayı çok sildim :)) En altta gördüğünüz "Create
my access token" düğmesi direk o anda login olduğunuz hesap için
uygulamaya izin verip size access token bilgisini verecektir. Bizim de
tam ihtiyacımız olan şey bu zaten :) Twitter API access keylerimiz ile
geldiğimizde kendi profilimize de erişebilmek istiyoruz.

Access Token'ımız da hazır.
Access Token'ımız da hazır.

Artık kendi hesabımıza ulaşabilmek için Access Token veAccess
Token Secret
bilgileri de elimizde. Elde ettiğimiz bu dört bilgi;
Consumer Key, Consumer Secret, Access Token ve Access Token Secret
uzaktan Twitter API'lerine bağlanıp kendi hesabımıza mesaj atabilmemiz
için yeterli :)

Sıra geldi uygulamamızı yazmaya :)

Uygulamayı yazarken HttpWebRequest'lerle OAuth'la uğraşacağımı
düşünüyorsunuz süper yanılıyorsunuz :) Visual Studio'da gidip "Tools /
Extension Manager"'dan hemen "NuGet Package Manager"ı bulup
yüklüyorsunuz :) NuGet kapaca birçok open source librarynin Visual
Studio entegrasyonunu otomatize eden bir arkadaş.

NuGet kullanıma hazır.
NuGet kullanıma hazır.

NuGet yüklemesi bittikten sonra hemen projenize sağ tıklayıp "Manage
NuGet Packages
" komutunu veriyorsunuz. "Online" tabında "Twitter" diye
aratırsanız "TweetSharp" diye bir yükleme göreceksiniz. Hemen çift
tıklayıp yükleyin!

TweetSharp yüklenirken...
TweetSharp yüklenirken...

Sanırım tüm yüklemelerimiz artık hazır :) İş geldi son üç satır kodu
yazmaya. Evet, şaka değil. Sadece üç satır :)

[VB]

        Dim TW As New TweetSharp.TwitterService
        TW.AuthenticateWith("ConsumerKeyBurada""ConsumerSecretBurada"
                "AccessTokenBurada"
"AccessTokenSecretBurada")
        Dim Status As TweetSharp.TwitterStatus = TW.SendTweet("İlk Twitter Mesajımız!")

Tahmin edebileceğiniz üzere ilk satır TweetSharp kütüphanesinden bir
TweetService alıyor. İkinci satır API Key'lerimizi kullanarak
Authentication'ı halletmenin haricinde o TwitterService instance'ı
için ulaşacağımız hesabın erişim hakları olanAccessToken ve
AccessTokenSecret'ı da tanımlıyor. Son olarak :) son satırda artık
SendTweet ile twitter mesajımızı gönderiyoruz!

Hepinize geçmiş olsun ;)