破壊的変更を多く含む CoreTweet 0.4.0 のご案内
利用者が増えてきた上に、簡単に個条書きするだけでは混乱を招きかねないアップデートになりそうなので、日本語で詳しく書いておきます。
新機能
- レスポンスに Json プロパティを追加 #68
- ErrorCode 列挙体を追加(後述) #71
- 各オブジェクトの ToString で ID を返すようにした(これによりパラメータに直接入れることが出来る) #75
- ストリーミングメッセージの見なおし(後述) #78 #82
- mute, unmute イベント、 user_delete, user_undelete メッセージに対応
- TwitterException に RateLimit プロパティを追加
- GZIP/Deflate による通信の圧縮に対応(Windows Phone 8 Silverlight を除く)
修正
- trends/place で日付をパースできないのを修正 #64
- trends/available, trends/closest の戻り値を修正(ListedResponse<Place> → ListedResponse<TrendLocation>)
- application/rate_limit_status で UNIX 時刻をパースできない問題を修正 #67
- パースエラー時に JSON を整形しないようにした #68
- プラットフォームによってはヘッダーの Rate Limit 情報がパースできていなかったのを修正
- イレギュラーなエラーレスポンス(error フィールド, HTML, XML)に対応 #74
- DisconnectCode の数値の間違いを修正
- ConnectionOptions.Proxy のデフォルト値がプロキシを使わないことになっていたのを修正
- Help.RateLimitStatus を Application.RateLimitStatus に移動 #84
- 認証時のエラーも TwitterException を返すようにした
- パラメーターに null を指定した場合に無視するようにした
- ConnectionOptions.DisableKeepAlive を追加、デフォルトで Keep-Alive を無効に(Windows Phone 8 Silverlight を除く) #87
ErrorCode 列挙体について
TwitterException で使われる Error クラスの Code プロパティをわかりやすくするために作成されました。 Code プロパティ自体は int のままですが、 ErrorCode を使って比較を行うことで実際の数値を気にせず処理することができます。
ストリーミングメッセージの大規模な変更について
Json プロパティの追加と RawJsonMessage
すべての StreamingMessage が Json プロパティを持つようになりました。そして一緒に列挙されていた RawJsonMessage は、パースに失敗した場合にのみ列挙されるようになりました。パース失敗時の例外は Debug ビルドでのみスローされます。
IdMessage の細分化
IdMessage がさまざまなメッセージに対応し、巨大化していたので分割しました。これにより型の変更が必要になります。変更後は以下のようになります。
MessageType | クラス |
---|---|
DeleteStatus | DeleteMessage |
DeleteDirectMessage | DeleteMessage |
ScrubGeo | ScrubGeoMessage |
StatusWithheld | StatusWithheldMessage |
UserWithheld | UserWithheldMessage |
UserDelete | UserMessage |
UserUndelete | UserMessage |