特定のユーザーのツイートを取得する
こんにちは。今回はTwitterのRest APIにも慣れていくために、特定のユーザーのツイートを取得するプログラムを作成していきます。もちろん、このような機能もTwitterクライアントを作成するにあたって、必須の機能となるのでマスターしていきたい所です。
前提ライブラリ
今回は以下のライブラリをNuGetを使ってインポートしました。
- System.Reactive
- CoreTweet
上記の名前でNuGetで検索して、インポートしてください。
使う技術
今回はawait演算子という、待機中のタスクが完了するまでメソッドの実行を中止する機能を使っていきます。それに伴って、普通にプログラムすることが出来ない部分があるので、注意していきます。
await演算子の公式リファレンスはこちら。
また、Dictionaryクラスでデータを扱っていきます。公式リファレンスはこちら。
コード
using System; using System.Reactive.Linq; using CoreTweet; using System.Collections.Generic; using System.Threading.Tasks; namespace TwitterClient { class Program { static void Main(string[] args) { var tokens = Tokens.Create("{API KEY}", "{API SECRET}", "{ACCESS TOKEN}", "{ACCESS TOKEN SECRET}"); //接続用トークン発行 var parm = new Dictionary<string, object>(); //条件指定用Dictionary parm["count"] = 50; //取得数 parm["screen_name"] = "yoshi_pc_"; //取得したいユーザーID Task task = Task.Factory.StartNew(async () => { var tweets = await tokens.Statuses.UserTimelineAsync(parm); foreach (var tweet in tweets) { Console.WriteLine(tweet.User.Name + "(@" + tweet.User.ScreenName + ")\r\n" + tweet.Text + "\r\n(at " + tweet.CreatedAt + ")\r\n"); Console.WriteLine("--------------"); } }).Unwrap(); task.Wait(); } } }
今回は前述した通り、21行目にawait演算子が使われています。このような非同期メソッドを実行するためにTask.Factory.StartNew()を使って、スレッドとしてその部分を処理しています。
結果
コンパイルした後、ビルドなしで実行すると以下のようなコンソールが出てきます。
これでツイートを取得するプログラムは完成です。
投稿者プロフィール
最新の投稿
- 2018.09.01AMD動画エンコードでGPUを活用する
- 2018.03.26phpツイートIDからsnowflakeを用いて投稿時刻のミリ秒を算出
- 2018.02.18phpphpMyAdminのインストール方法(Ubuntu)
- 2018.01.07未分類新聞を折らずに郵送する方法
最近のコメント