「TwitterAPIライブラリ」の編集履歴(バックアップ)一覧はこちら
「TwitterAPIライブラリ」(2011/07/01 (金) 00:01:59) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
**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>
}}
**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">
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>
}}
表示オプション
横に並べて表示:
変化行の前後のみ表示: