【開発】Linq for Twitterを使ってみたの巻
.NetでTwitterを扱うに便利なLinq forTwitterがあるというので、使ってみた。
すでにネット上に情報はあるので、それらを参考にいじってはみたのですが、あれ?なんか違う?(;・∀・)と・・。
バージョンが上がるにつれて、変更されているようですね。
とりあえず、認証不要のタイムラインを取得するところをば。
認証不要なやつなので、PublicTimeline(どこの馬の骨かもしらん世界の公開ユーザー)か、UserTimeLine(公開してるユーザー)を取得できます。
認証も試みたんですが、これが、ネット上の情報通りでは全然ダメ、そんなメソッド無くなってました・・。もちオープンなのでコードを見ればイイんですけど・・、仕事じゃないので、まずは試しです。
公開ツイッターを見るのはとっても簡単です。
http://linqtotwitter.codeplex.com/
こちらからダウンロードし解凍すると、デモやらなんやらとタンマリのコードが出てきます。これらを吟味する時間は無いので、早速、LinqToTwitterのbin/にあるDLLを頂戴し参照します。現時点では、Debugバージョンのみ添付されてるようです。ま、これでも問題ないけど。自分でコンパイルしないといけません。
そういや、上のリンクページにいきなりサンプルのってますけど、そんな感じですね(;・∀・)
//ユーザー var publicTweets = from tweet in twCnt.Status where tweet.Type == StatusType.User (ユーザータイムラインを指定) && tweet.ScreenName == strUserName (ユーザー名) && tweet.Count == iCount (取得数、但しPublicは指定不可) select tweet; //取得 publicTweets.ToList().ForEach( tweet => { TwitterItem twi = new TwitterItem(); twi.Latitude = 0d; twi.Longitude = 0d; twi.Source = tweet.Source; twi.StatusID = tweet.StatusID; twi.Text = tweet.Text; twi.PostTime = tweet.CreatedAt; twi.User = new TwitterUser(); twi.User.CreateAt = tweet.User.CreatedAt; twi.User.Description = tweet.User.Description; twi.User.FavoritesCount = tweet.User.FavoritesCount; twi.User.FollowersCount = tweet.User.FollowersCount; twi.User.FriendsCount = tweet.User.FriendsCount; twi.User.GeoEnabled = tweet.User.GeoEnabled; twi.User.Location = tweet.User.Location; twi.User.Name = tweet.User.Name; twi.User.ProfileBackgroundImageUrl = tweet.User.ProfileBackgroundImageUrl; twi.User.ProfileImageUrl = tweet.User.ProfileImageUrl; twi.User.ScreenName = tweet.User.ScreenName; twi.User.StatusesCount = tweet.User.StatusesCount; twi.User.TimeZone = tweet.User.TimeZone; twi.User.URL = tweet.User.URL; twi.User.UserID = tweet.User.UserID; lItems.Add(twi); } )
中身を色々見ながら遊んでましたので・・。使えそうなデータはこんな感じでした。
上のLinq発行時に、問い合わせに行っているらしく、Where条件式というより、Twitterへの引数のようなイメージです。
status(Twitterではタイムラインの事)に、publicやuserなんかがあります。typeには他にもserachなどがあります。
後は、Textに内容、CreateAtに時間が入ってます。場所が格納されるGeoは、日本ではまだ開始されてません。Sourceは、投稿したTwitterクライアントシステムがリンクHTMLタグ入りで入ってます。Twitterサイトからの場合は普通に”web”とだけのようです。
StatusIDは、ツイートIDです。ちゃんとID振ってるんですね。ちなみに64bitです。これ、超えたらどうなるんでしょ。
また、全てのステータス(ツイート)に、User情報が付与されてて、公開ユーザーさんの情報を取得できます。
上の例でいう、Userのところ全部ですね。Twitter設定のプロフィール画像、背景画像に至るまで全部です。FavoritesCount/FollowersCount/FriendCount辺りは、そのままフォロー数ですね。
PublicTimelineを見てると、世界のつぶやきを見れて面白いんですよ。
実際にクライアントを作りたい場合は、Stream接続してイベントとってとかになるんでしょうね。デモコードが沢山あるので、詳しくはコードを見たほうがいいと思います。注意は、LinToTWiitterバージョンが変わった時?