くろねこ日記

ソフトウェアに関する技術メモが多いです.

C#でtwitterAPIを利用するときのメモ

-C#twitterのクライアントソフトを作っている途中のメモ

twitterAPIxml形式でダウンロードする場合、idとパスワードを聞かれてしまう
実際に、クリックした方がわかりやすいのでアクセスしたほうがわかりやすいかもしれない
(タイムラインのAPI:http://twitter.com/statuses/friends_timeline.xml)
↓こんなのが表示される
f:id:kuroneko0208:20100410201106j:image
ここで、idとパスワードを入力しなければいけないので、
その際のメモを記録しておく

-ソース


     System.Net.NetworkCredential ncTwitter = new NetworkCredential("twitterのID", "twitterのパスワード");
   //System.Net.NetworkCredential ncTwitter = new NetworkCredential(string ID, string password);

   //認証情報
     System.Net.WebClient wc = new System.Net.WebClient();
     wc.Credentials = ncTwitter;
   
   //同期してxmlをダウンロード
     wc.DownloadFile(ダウンロード対象のファイルパス, 保存先入力);
//ex:wc.DownloadFile("http://twitter.com/statuses/friends_timeline.xml", @"friends_timeline.xml");

     wc.Dispose();

-おまけ

会社や大学では、プロキシを介してアクセスする場合にIDとパスワードを要求される場合がある。
この方法だけでは、(リモート サーバーがエラーを返しました: (407) プロキシ認証が必要です)
というエラーが帰ってきてしまうので、最後にプロキシ認証も含めた方法を書いておく。

-ソース

     System.Net.NetworkCredential ncTwitter = new NetworkCredential("twitterのID", "twitterのパスワード");
   //System.Net.NetworkCredential ncTwitter = new NetworkCredential(string ID, string password);
     System.Net.NetworkCredential ncProxy = new NetworkCredential("プロキシのID", "プロキシのパスワード");

   //認証情報
     System.Net.WebClient wc = new System.Net.WebClient();
     wc.Proxy.Credentials = ncProxy;
     wc.Credentials = ncTwitter;
   
   //同期してxmlをダウンロード
     wc.DownloadFile(ダウンロード対象のファイルパス, 保存先入力);
//ex:wc.DownloadFile("http://twitter.com/statuses/friends_timeline.xml", @"friends_timeline.xml");

     wc.Dispose();

-最後に
twitterAPIを扱う際のメモを記述した。
後、原因がわからないが、プロキシを介した場合だとxmlのダウンロードが非常に遅い。
35MBのxmlをダウンロードするのに10分以上かかった・・・。