Skip to: Site menu | Main content

「TwitterAPIライブラリ」の編集履歴(バックアップ)一覧はこちら

TwitterAPIライブラリ」の最新版変更点

追加された行はこの色になります。

削除された行はこの色になります。

 **TwitterAPI+C#
 BASIC認証のライブラリが使えなくなったので、OAuth認証のライブラリをボチボチと製作。
 C#やVB.NETから使えるようにする。
 C#2010EEで開発。ただし、.NET3.5にする。(そのうち、[[DynamicJson>>http://dynamicjson.codeplex.com/]]が使ってみたいので.NET4.0にするかも。)
 APIの呼出はJSON形式にする。
 とりあえず、ProfileのImageUploadとGeoAPI以外は完成。
 
 **参考サイト
 [[Twitter API Documentation(公式:英語)>>http://dev.twitter.com/doc]]
 [[Twitter API 仕様書 (勝手に日本語訳シリーズ)>>http://watcher.moe-nifty.com/memo/2007/04/twitter_api.html]]英語で理解できないとこは参考にさせてもらってます。
 [[貧脚レーサーのサボり日記(C#|TwitterのAPIを叩くライブラリを作ってみた)>>http://blogs.dion.ne.jp/anis7742/archives/7855038.html]]Basic認証で参考にさせてもらったサイト
 [[nojimaの日記(C#でOAuthでTwitter)>>http://d.hatena.ne.jp/nojima718/20100129/1264792636]]OAuth認証はこちらを参照。
 
 **仕様
 C#ソースから、Doxygenでドキュメント化。
 [[Doxygenで作成したドキュメント>>http://okura.gozaru.jp/oauth/twitter/main.html]]
 開発環境は、C#2010EE。ただし、.NET3.5を使用。
 **使い方
 Twitterのサイトhttp://twitter.com/apps/newでアプリ情報を登録して、Consumer keyとConsumer secretもらっておいてください。
 OAuthTwitetr.dllをC#やVBのプロジェクトに「参照を追加」して使用してください。
 ***HomeTimeline
 ****VB (VB2010EE)
 #highlight(VB){
 ' Timelineの表示
 Dim tl As New TimelineAPI
 Dim statuses As List(Of Status) = tl.HomeTimeline(oauth)
 For Each status As Status In statuses
 	Console.WriteLine(status.User.Name)
 	Console.WriteLine(status.Text)
 	Console.WriteLine("")
 Next
 }
 ****C# (C#2010EE)
 #highlight(C#){{
 // Timelineの表示
 TimelineAPI tl = new TimelineAPI();
 List<Status> statuses = tl.HomeTimeline(oauth);
 foreach (Status status in statuses)
 {
 	Console.WriteLine(status.User.Name);
 	Console.WriteLine(status.Text);
 	Console.WriteLine("");
 }
 }}
 ***非同期HomeTimeline
 ****VB (VB2010EE)
 #highlight(VB){
 ' 非同期でTimeline()
 ' イベント登録
 AddHandler Utility.DownloadCompleted, AddressOf Download_Completed
 Dim tl As New TimelineAPI
 tl.HomeTimelineAsync(oauth)
 
 ' 非同期キャンセル
 'Utility.CancelAsync()
 
 'イベント
 Private Sub Download_Completed(ByVal sender As Object, ByVal e As TwitterEventArgs)
 	If e.Cancelled Then
 		Console.WriteLine("キャンセルされました。")
 	ElseIf Not (e.Error Is Nothing) Then
 		Console.WriteLine("エラー:{0}", e.Error.Message)
 	Else
 		Console.WriteLine("非同期")
         For Each result As Object In e.ResultObject
             If TypeOf result Is Status Then
                 Console.WriteLine(result.User.Name)
                 Console.WriteLine(result.Text)
                 Console.WriteLine("")
             End If
         Next
     End If
 End Sub
 }
 ****C# (C#2010EE)
 #highlight(C#){{
 // 非同期でTimeline()
 // イベント登録
 Utility.DownloadCompleted += new Utility.TwitterEventHandler(Utility_DownloadCompleted);
 TimelineAPI tl = new TimelineAPI();
 tl.HomeTimelineAsync(oauth);
 
 // 非同期キャンセル
 //Utility.CancelAsync();
 
 //イベント
 static void Utility_DownloadCompleted(object sender, TwitterEventArgs e)
 {
 	if (e.Cancelled)
 	{
 		Console.WriteLine("キャンセルされました。");
 	}
 	else if (e.Error != null)
 	{
 		Console.WriteLine("エラー:{0}", e.Error.Message);
 	}
 	else
 	{
         Console.WriteLine("非同期");
         if (e.ResultObject.GetType() == typeof(List<object>))
         {
             foreach (var result in (List<object>)e.ResultObject)
             {
                 if (result.GetType() == typeof(Status))
                 {
                     Console.WriteLine(((Status)result).User.Name);
                     Console.WriteLine((result as Status).Text);
                     Console.WriteLine("");
                 }
             }
         }
     }
 }
 }}
 ***Update
 ****VB (VB2010EE)
 #highlight(VB){
 ' Tweet
 Dim tw As New TweetsAPI
 Dim update As Status = tw.Update(oauth, "つぶやき")
 Console.WriteLine("Tweet:" + update.Text)
 }
 ****C# (C#2010EE)
 #highlight(C#){
 // Tweet
 TweetsAPI tw = new TweetsAPI();
 Status update = tw.Update(oauth, "つぶやき");
 Console.WriteLine("Tweet:" + update.Text);
 }
 
 **ダウンロード
 Version 0.9.5 &ref(OAuthTwitterAPI_0_9_5.zip)
 古いVersionを使っている人がいたら、、、
 結構メソッド名を変えてるので、使えるうちは古いほうがいいかもです。
 
 
 **更新履歴
 : Version 0.9.0 (2010/10/08) | -追加	OAuth
 -追加	TimelineAPI
 -追加	TweetsAPI
 : Version 0.9.1 (2010/10/13) | -追加	UsersAPI
 -追加	TrendAPI
 -追加	SearchAPI
 : Version 0.9.2 (2010/10/23) | -追加	ListsAPI
 -追加	DirectMessagesAPI
 -追加	FriendshipsAPI
 -追加	FriendFollowerAPI
 : Version 0.9.3 (2010/10/25) | -追加	AccountAPI(ImageUpload関係を除く)
 -追加	FavoritesAPI
 -追加	NotificationsAPI
 -追加	BlockAPI
 -追加	SpamAPI
 -追加	SavedSearchAPI
 -追加	LegalAPI
 -追加	HelpAPI
 -変更   非同期の戻り値をObjectに変更
 : Version 0.9.4 (2010/11/29) | -修正	Mentions(アドレスの間違い)
 : Version 0.9.5 (2011/06/04) | -追加	GeoAPI
 -修正	TwitterのDocumentにあわせてメソッド名を変更。
 
 **まとめ
 すべてJSONで処理することにより、全面的にデータ部分の書き換え。
 API側でアドレスに変数を入れるものを撤廃する方向のよう。(まだ一部残ってますが)
 Geo関係は、とにかくデータがまとまってない。
 APIのVersionが2になってまとめてもらえるとありがたいな。
 
 
 自分で使用するメソッド以外は、さらっと1度テストする程度なので、絶対バグが潜んでいるはず。
 
 -不具合、要望、ご意見、ご感想等は[[Wiki(TOP)>http://www28.atwiki.jp/ers312b/]]からもしくは[[BLOG>http://d.hatena.ne.jp/Okura/]]のコメントなどへお願い致します。
 
 ----
 #right(){作成日時: 2009/07/07}
 #right(){更新日時:&update(format=Y/m/d)}
 #amazon2(468x60)
-#javascript(){
-<script type="text/javascript" src="http://i.yimg.jp/images/analytics/js/ywa.js"></script>
-<script type="text/javascript">
-var YWATracker = YWA.getTracker("1000102733542");
-YWATracker.addExcludeProtocol("file:");
-YWATracker.submit();
-</script>
-<noscript>
-<div><img src="http://by.analytics.yahoo.co.jp/p.pl?a=1000102733542&js=no" width="1" height="1" alt="" /></div>
-</noscript>
-}
+
 #javascript(){{
 <script type="text/javascript">
 var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
 document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
 </script>
 <script type="text/javascript">
 try {
 var pageTracker = _gat._getTracker("UA-755594-4");
 pageTracker._trackPageview();
 } catch(err) {}</script>
 }}