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






















ディスカッション
コメント一覧
まだ、コメントがありません