読者です 読者をやめる 読者になる 読者になる

謎言語使いの徒然

適当に気になった技術や言語を流すブログ。

Twitter タイムラインを拾ってみる

.NET Twitter C#

Twitter のタイムラインをC#で拾ってみた。
で、やることを列挙

  • https://dev.twitter.com/Twitter開発者登録+SignIn
  • https://dev.twitter.com/apps で作成するアプリケーションを新規登録。
  • Consumer key, Consumer secret をメモしとく
  • Optionから欲しい権限を選ぶ
  • Your access token でトークンを作る(デバグ用アクセストークン)
  • Access token, Access token secret をメモる
  • https://github.com/Twitterizer/Twitterizer から clone してビルド
  • 新規プロジェクトおったてて Twitterizer2.dll の参照を突っ込む
  • プログラミング
  • 動作する前にリソースとして Newtonsoft.Json.dll をコピー

で、アクセスコードはこれ

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Twitterizer;

namespace TwitterTest
{
    public class TweetLine 
    {
        public String User { get; set; }
        public DateTime Time { get; set; }
        public String Message { get; set; }
    }

    public class TwitterAccessor
    {
        const string CONSUMER_KEY = "key";
        const string CONSUMER_SECRET = "secret key";

        OAuthTokens tokens = null;

        public TwitterAccessor(string accessToken, string accessTokenRequest)
        {
            tokens = new OAuthTokens();
            tokens.AccessToken = accessToken;
            tokens.AccessTokenSecret = accessTokenRequest;
            tokens.ConsumerKey = CONSUMER_KEY;
            tokens.ConsumerSecret = CONSUMER_SECRET;
        }

        public List<TweetLine> GetUserTimeline()
        {
            return ConvertStatus2Timelines(
                TwitterTimeline.UserTimeline(this.tokens));
        }

        public List<TweetLine> GetHomeTimeline()
        {
            return ConvertStatus2Timelines(
                TwitterTimeline.HomeTimeline(this.tokens));
        }

        private List<TweetLine> ConvertStatus2Timelines(TwitterResponse<TwitterStatusCollection> res)
        {
            return res.ResponseObject.Select((TwitterStatus status) =>
            {
                return new TweetLine()
                {
                    User = status.User.Name,
                    Time = status.CreatedDate,
                    Message = status.Text
                };
            }).ToList();
        }
    }
}

次はどーやって oAuth トークンの生成+取得するかなぁ?

ここを参考にしながらOAuthの概要確認。