C#アプリからタイムラインの取得、投稿を実施してみた。
面倒なOAuth認証はTwitterizerライブラリを使用した。
取得したタイムラインをもとになんらかの処理をやってみたり、何らかの処理の結果をTwitterに投稿してみたりと、Twitterとの連携に使えそうである。
2014/01/19 追記
なんか認証エラーでTweetが取得できなくなってる(API 1.0終了がらみかな)。
Twitterizerの代わりにTweetsharpっていうライブラリ使ったら取得できたよ。
C#アプリケーションでTwitter認証から投稿までやってみるの記事が参考になったよ!
Twitterizer
素早く簡単に.NETアプリからTwitterを使えるライブラリとのこと。
公式サイト( http://www.twitterizer.net/ )のGET ITからソースを落としてビルドする。
今回は以下からソースを入手した。
https://github.com/Twitterizer/Twitterizer
ビルドするとTwitterizer-develop\Release\Twitterizer2\Full\Twitterizer2.dllというDLLファイルが得られる。
このDLLをVisualStudioプロジェクトの参照に追加する。
(ソリューションエクスプローラの参照設定の部分で右クリックし、参照の追加を選択、(またはプロジェクト->参照の追加 メニューを選択し)、「参照の追加」ダイアログを表示させ、参照タブからTwitterizer2.dllを選ぶ。)
Consumer keyとAccess tokenの取得
アプリからTwitterにアクセスするのに必要なトークン類を入手する。
https://dev.twitter.com/appsにて新規登録し
Consumer keyとConsumer secretを取得する。
さらに、設定画面からaccess tokenの生成を行い、Access token、Access token secretを取得する。
また、設定画面で Access level に writeを追加しておく。(writeはアプリからTwitterへのデータ書き込み、つまりつぶやきの投稿の許可である。)
サンプルコード
前述の手順でTwitterizer2.dllをVisualStudioプロジェクトの参照に追加しておく。
using System; using Twitterizer; namespace ConsoleTwitter { public class Program { /// <summary> /// 以下トークン文字列は /// https://dev.twitter.com/apps にて Create a new application から生成します。 /// つぶやきを行う場合は Application type 設定で write も可能としておきます。 /// </summary> const string CONSUMER_KEY = "hoge"; const string CONSUMER_SECRET = "hoge"; const string ACCESS_TOKEN = "hoge"; const string ACCESS_TOKEN_SECRET = "hoge"; static void Main(string[] args) { try { //トークンを設定 OAuthTokens tokens = new OAuthTokens(); tokens.AccessToken = ACCESS_TOKEN; tokens.AccessTokenSecret = ACCESS_TOKEN_SECRET; tokens.ConsumerKey = CONSUMER_KEY; tokens.ConsumerSecret = CONSUMER_SECRET; //ユーザの情報を取得 String username = "loftkun"; GetUserDetails(tokens, username); //ユーザのタイムラインを取得 GetUserTimeline(tokens); //つぶやく DoUpdate(tokens, "つぶやきテスト"); } catch (Exception exp) { Console.WriteLine(exp.Message); } } /// <summary> /// ユーザ情報を取得 /// </summary> /// <param name="tokens">トークン</param> /// <param name="username">ユーザ名</param> private static void GetUserDetails(OAuthTokens tokens, String username) { try { TwitterResponse<TwitterUser> showUserResponse = TwitterUser.Show(tokens, username); if (showUserResponse.Result == RequestResult.Success) { Console.WriteLine(showUserResponse.ResponseObject.Name); Console.WriteLine(showUserResponse.ResponseObject.Description); } else { Console.WriteLine(showUserResponse.ErrorMessage); } } catch (Exception exp) { Console.WriteLine(exp.Message); } } /// <summary> /// ユーザのタイムラインを取得 /// </summary> /// <param name="tokens">トークン</param> private static void GetUserTimeline(OAuthTokens tokens) { try { TwitterResponse<TwitterStatusCollection> res = TwitterTimeline.UserTimeline(tokens); foreach (TwitterStatus status in res.ResponseObject) { Console.WriteLine(status.Text); } } catch (Exception exp) { Console.WriteLine(exp.Message); } } /// <summary> /// つぶやく /// </summary> /// <param name="tokens">トークン</param> /// <param name="body">本文</param> private static void DoUpdate(OAuthTokens tokens, String body) { try { TwitterResponse<TwitterStatus> tweetResponse = TwitterStatus.Update(tokens, body); if (tweetResponse.Result == RequestResult.Success) { Console.WriteLine("Tweet posted successfully!"); } else { Console.WriteLine("Something bad happened"); } } catch(Exception exp) { Console.WriteLine(exp.Message); } } } }
注 : 回数制限で怒られることがあります( Rate limit exceeded. Clients may not make more than 350 requests per hour. )
>公式サイト( http://www.twitterizer.net/ )のGET ITからソースを落としてビルドする。
公式サイトを確認したのですが どれをインストール(ダウンロード)すればいいのか? 分かりませんでした。
教えてもらえませんか?。。。
ツイッター ツイートアプリケーションを作成したいので。。。
・あの
>公式サイト( http://www.twitterizer.net/ )のGET ITからソースを落としてビルドする。
と書いてありますが 公式サイトを見たのですが ファイルがたくさんあって分かりません
どれをダウンロードし,ビルドすればいいのですか?
方法等を教えてください。
>★RYU-May進学ne-★さん
こんにちは。
ブログ冒頭の「2014/01/19 追記」の項目にも記載しておりますように、
Twitterizerはもう更新されておらず、使えないようです。
代わりにTweetsharpというライブラリが使えるようです。
参考)
http://thr3a.hatenablog.com/entry/20130921/1379728823
http://c-loft.com/blog/?p=2270
Tweetshapeもサポートが終わりだそうで、(別スレッドで独自ビルド版の話題が出ているのはそのため)Coretweetの紹介をして頂けないでしょうか?
http://blog.ch3cooh.jp/entry/20140808/1407464147
まあこのままなんですが、認証エラーに悩まされています。
>BURIさん
こんにちは。
ご紹介いただいたブログ記事( http://blog.ch3cooh.jp/entry/20140808/1407464147 )の
コードで動くようです。
試したコードは以下です(各種tokenは伏せ字してます)。
Json={“errors”:[{“message”:”Bad Authentication data”,”code”:215}]} が返ってきているということなので
token文字列の確認(ブログ記事にある{}の記号は不要です。)と、
ブログ記事にある”アプリケーションの権限の変更”の設定が
確実にされているかどうかを確認して見て下さい。
あー、{}の記号つけてました。(汗)
外したら動きました。ありがとうございます。
Xに変わってから認証に失敗するのは私だけ。。。?