Twitterizerであるユーザーをブロックしているかどうか調べる、だけの話です(完全に覚書です)。
コードはこんな感じになります。
TwitterResponse<TwitterUser>型で返ってきますが、ブロックしているかどうか、はTwitterResponse.ResultがSucceedならブロックしている/それ以外ならブロックしていない。となるみたいです。TwitterResponseにはRequestURLメンバがありますが、デバッグで見る限りは"http://api.twitter.com/1/blocks/exists.json?screen_name=[screenname]&include_entities=true"を取得してるみたいです。
respにはTwitterUser型のUserメンバもあり、[screenName]さんのUser情報がそのまんま入ってました。
ブロックしていない相手の場合、resp.ResultはFileNotFound、Contentは"{\"errors\":[{\"message\":\"Sorry, that page does not exist\",\"code\":34}]}"が返ってきてました。
で、ブロックしているユーザー一覧も取得できるはずなんですけど、次のコードだと何も返ってきません…
実装されてない、とかなんですかね?OAuthとかjsonとかその辺りをC#で自分で処理できるようになりたいですね…
Read more →
コードはこんな感じになります。
private void blockToolStripMenuItem_Click(object sender, EventArgs e) { //ブロックしているかどうか調べる const string screenName = "***********"; var resp = TwitterBlock.Exists(token, screenName); if (resp.Result == RequestResult.Success) { //ブロックしている MessageBox.Show("yes"); } else { //ブロックしていない MessageBox.Show("no"); } }
TwitterResponse<TwitterUser>型で返ってきますが、ブロックしているかどうか、はTwitterResponse.ResultがSucceedならブロックしている/それ以外ならブロックしていない。となるみたいです。TwitterResponseにはRequestURLメンバがありますが、デバッグで見る限りは"http://api.twitter.com/1/blocks/exists.json?screen_name=[screenname]&include_entities=true"を取得してるみたいです。
respにはTwitterUser型のUserメンバもあり、[screenName]さんのUser情報がそのまんま入ってました。
ブロックしていない相手の場合、resp.ResultはFileNotFound、Contentは"{\"errors\":[{\"message\":\"Sorry, that page does not exist\",\"code\":34}]}"が返ってきてました。
ブロックしていないとき |
private async void ブロック一覧ToolStripMenuItem_Click(object sender, EventArgs e) { var dialog = new ShowUsersDialog(); dialog.Text = "ブロックしているユーザー一覧:"; dialog.Show(); var options = new BlockingOptions(); await Task.Run(() => { //ブロックしているユーザーのIDを取得する。 //TwitterBlock.Blockingだとエラーが返ってくる var ids = TwitterBlock.BlockingIds(token); if (ids.Result == RequestResult.Success) { foreach (var u in ids.ResponseObject) { dialog.richTextBox1.Text += u + "\n"; } } else { //取得出来ませんでした MessageBox.Show(ids.Result.ToString()); } }); }