[C#] TweetSharpのUserID64bit対応版の入手

̃Gg[͂ĂȃubN}[Nɒlj

Tweetの取得にTweetSharpを使用している。
本エントリでは主にTweetSharpのビルド手順について記載する。
 

経緯

ある日、ListTweetsOnUserTimeline()メソッドて以下例外が発生するようになった。

型 'Newtonsoft.Json.JsonSerializationException' の初回例外が Newtonsoft.Json.dll で発生しました
Cannot deserialize the current JSON array (e.g. [1,2,3]) into type 'TweetSharp.TwitterStatus' because the type requires a JSON object (e.g. {"name":"value"}) to deserialize correctly.
To fix this error either change the JSON to a JSON object (e.g. {"name":"value"}) or change the deserialized type to an array or a type that implements a collection interface (e.g. ICollection, IList) like List<T> that can be deserialized from a JSON array. JsonArrayAttribute can also be added to the type to force it to deserialize from a JSON array.
Path '', line 1, position 1.

stackover Tweetsharp issue while getting the UserProfile and TimeLineによると

Tweetsharp is using integers for the user_id in a few places which is throwing the exceptions.

Go to github and downloaded the latest source. It has been updated to handle the new user id's. ( you will need to compile it yourself)

とのこと。

NuGetでインストールされるバージョンはまだTwitter UserID64bit対応がすんでいないようである。
仕方ないので自分でビルドすることにした。

なおNuGetに、「TweetSharp-Unofficial」なるパッケージがあり、
非公式ながらもこちらをインストールすることでエラーを回避できることに気づいたのは、
自分でビルドが済んだ後であった。。。

いちおうビルド手順をメモしておく。

TweetSharpプロジェクトのビルド


https://github.com/danielcrenna/tweetsharpより、tweetsharp-master.zipをダウンロードする。
zipファイルを解凍し以下ソリューションファイルを開く。
tweetsharp-master\tweetsharp-master\src\TweetSharp.sln

TweetSharp.Net20 がスタートアッププロジェクトになってるがこの作業ではTweetSharpプロジェクトしかいじらない。

とりあえずビルドする。以下エラーが出る。

エラー	6	型または名前空間名 'Hammock' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。

NuGetで’Hammock’をインストールしてビルドする。以下エラーが出る。

エラー	7	型または名前空間名 'Newtonsoft' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。

NugetでNewtonsoft.Jsonで検索してHITするJson.NETをインストールしてビルドする、ビルド完了。

後は、TweetSharpを利用したい側のアプリケーションで、
“TweetSharp.dll” “Hammock.ClientProfile.dll” “Newtonsoft.Json.dll”
の3つを参照に追加すれば利用可能である。


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です