コードはこんな感じになります。
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());
}
});
}
