The Cabinet of Okura
TwitterAPIライブラリ
最終更新:
ers312b
-
view
TwitterAPI+C#
BASIC認証のライブラリが使えなくなったので、OAuth認証のライブラリをボチボチと製作。
C#やVB.NETから使えるようにする。
C#2010EEで開発。ただし、.NET3.5にする。(そのうち、DynamicJsonが使ってみたいので.NET4.0にするかも。)
APIの呼出はJSON形式にする。
とりあえず、ProfileのImageUploadとGeoAPI以外は完成。
C#やVB.NETから使えるようにする。
C#2010EEで開発。ただし、.NET3.5にする。(そのうち、DynamicJsonが使ってみたいので.NET4.0にするかも。)
APIの呼出はJSON形式にする。
とりあえず、ProfileのImageUploadとGeoAPI以外は完成。
参考サイト
Twitter API Documentation(公式:英語)
Twitter API 仕様書 (勝手に日本語訳シリーズ)英語で理解できないとこは参考にさせてもらってます。
貧脚レーサーのサボり日記(C#|TwitterのAPIを叩くライブラリを作ってみた)Basic認証で参考にさせてもらったサイト
nojimaの日記(C#でOAuthでTwitter)OAuth認証はこちらを参照。
Twitter API 仕様書 (勝手に日本語訳シリーズ)英語で理解できないとこは参考にさせてもらってます。
貧脚レーサーのサボり日記(C#|TwitterのAPIを叩くライブラリを作ってみた)Basic認証で参考にさせてもらったサイト
nojimaの日記(C#でOAuthでTwitter)OAuth認証はこちらを参照。
仕様
使い方
Twitterのサイトhttp://twitter.com/apps/newでアプリ情報を登録して、Consumer keyとConsumer secretもらっておいてください。
OAuthTwitetr.dllをC#やVBのプロジェクトに「参照を追加」して使用してください。
OAuthTwitetr.dllをC#やVBのプロジェクトに「参照を追加」して使用してください。
HomeTimeline
VB (VB2010EE)
' 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)
// 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)
' 非同期で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)
// 非同期で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)
' Tweet
Dim tw As New TweetsAPI
Dim update As Status = tw.Update(oauth, "つぶやき")
Console.WriteLine("Tweet:" + update.Text)
C# (C#2010EE)
// Tweet
TweetsAPI tw = new TweetsAPI();
Status update = tw.Update(oauth, "つぶやき");
Console.WriteLine("Tweet:" + update.Text);
ダウンロード
更新履歴
- 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になってまとめてもらえるとありがたいな。
API側でアドレスに変数を入れるものを撤廃する方向のよう。(まだ一部残ってますが)
Geo関係は、とにかくデータがまとまってない。
APIのVersionが2になってまとめてもらえるとありがたいな。
自分で使用するメソッド以外は、さらっと1度テストする程度なので、絶対バグが潜んでいるはず。
作成日時: 2009/07/07
更新日時:2011/07/01