【開発】Linq for Twitterを使ってみたの巻

開発ざれごと.net,linq to wtitter,visualstudio

sc20110829173908

.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バージョンが変わった時?

開発ざれごと.net,linq to wtitter,visualstudio

Posted by nabe