第五夜

認証からツイートまで

2013/06/16

ちゃちゃっと認証

サンプルを参考にOAuth認証してみる。

https://github.com/danielcrenna/tweetsharp

var service = new TwitterService(ConsumerKey, ConsumerSecret);
var requestToken = service.GetRequestToken();
Uri uri = service.GetAuthenticationUrl(requestToken);
Process.Start(uri.ToString());

ブラウザが開いてPINを貰ったら

var access = service.GetAccessToken(requestToken, PIN);
service.AuthenticateWith(access.Token, access.TokenSecret);

PINをGetAccessTokenにリクエストトークンと一緒に渡せばok

access.Tokenとaccess.TokenSecretをファイル等に保存して完了。

次回起動からは、

var service = new TwitterService(ConsumerKey, ConsumerSecret);
service.AuthenticateWith(tokenValue, tokenSecret);

これでserviceを使ってAPIを呼んでいきます。

タイムライン取得

これもサンプルを参考に、

var tweets = service.ListTweetsOnHomeTimeline(new ListTweetsOnHomeTimelineOptions { Count = 200 });

引数にはオプションを指定します。

どんなオプションがあるのかはAPIドキュメントで確認。

IEnumerableで帰ってくるのでforeachとかで回せばタイムラインが取得出来ます。

foreach (var tweet in tweets)
{
	Console.WriteLine(tweet.Text);
}

TwitterStatusには色々入ってて、例えばツイートはTextに、スクリーン名はUser.ScreenNameに入ってます。

jsonで帰ってくるものと同一だと思うので、上記のAPIドキュメントを参考に、必要なものを取得します。

あと、TwitterSharpのサンプルはたまに間違ってたり、そもそもドキュメントが無いので、ソース見るかメソッド名から判断していきます。

ツイート

ツイートする時は、

service.SendTweet(new SendTweetOptions { Status = "ツイートしたよ" });

オプションのStatusにツイート内容を指定すればok

非同期で取得

それぞれには非同期で動作するメソッドも付属してるみたい。

例えばタイムライン取得の場合、

var result = new Action<IEnumerable<TwitterStatus>, TwitterResponse>(HomeTimeline_Result);
var option = new ListTweetsOnHomeTimelineOptions();
option.Count = 200;
service.ListTweetsOnHomeTimeline(option, result);

private void HomeTimeline_Result(IEnumerable t, TwitterResponse r)
{
	//TL取得完了後
}

ListTweetsOnHomeTimelineにオプションとdelegateを渡してやればok

ただ、完了後も別スレッドなので、コントロールを操作する時とかは、

var ac = new Action<IEnumerable<TwitterStatus>, TwitterResponse>(hoge);
Invoke(ac, t, r);

private void hoge(IEnumerable<TwitterStatus> tweets, TwitterResponse r)
{
	//ここで操作
}

Invoke()を使って操作する。

他にも

基本的な動作は今までの流れでやればいけるかな?

ただ、APIには実装されてるけどTwitterSharpには実装されてないメソッドがあるっぽい。

C#でも無いしAPI1.1でもないんだけど、

http://www.tryphp.net/category/phpapplication_twitter-api/

日本語でまとまってるので公式ドキュメントと併せて見て参考になった。

  プロフィール  PR:無料HP  湯沢自動車学校  請求書買取 おすすめ 京都  社会人 専門学校  BWI Group  中古ホイール 静岡  タイヤ 見積  自動車整備士  カーパーツ  民泊 費用  増改築  新生ジャパン投資 投資顧問  タイヤ 持ち込み 佐渡市  シアリス 通販