前にブログで書いた「Twitter4Jを使ったら10分でつぶやきJavaプログラムが作れました! ~NetBeans編~」が、自分のJava EE記事なんかより全然アクセス数が高くて…汗、Twitter使って何かプログラムを作ってみたい!という方の多さを感じると共に、やはりTwitter4Jすごいなぁと(^^;
上記のようなものを書いておきながら、自分自身が情報をキャッチできていなかったのですが…Twitter APIの仕様が少し変わったようで、上記ブログ内容のままだと動かないようになっていました。
恥ずかしながらブログにコメントを頂いて気づきました…すみません。
一番良い対応方法は
最新バージョン(2014/1/18時点)の3.0.5に変更する
のようです。
どうしても3.0.3のバージョンを変えたくない…みたいな事情があれば(ない気がしますが…)
「http.useSSL=true」をプロパティに追加する
でも動かせるので、あまり推奨されないと思いますが、workaroundとして設定してみて下さい。
試しに両方でテストツイートしてみた所、後者のほうでTwitter4J開発者の@yusukeさんからコメント頂きました(^^;何か3.0.3でつぶやいてしまって、すみません…。
というわけで、3.0.5使いましょう!一応どちらも手元で実際に確認したので以下記述しておきます。
ちなみに3.0.3のままだと
参考までに、前に書いた「Twitter4Jを使ったら10分でつぶやきJavaプログラムが作れました! ~NetBeans編~」の手順そのままに実行すると、Twitter4Jのバージョンが3.0.3で書いていたので
Exception in thread "main" Server returned HTTP response code: 403 for URL: h ttp://api.twitter.com/1.1/account/verify_credentials.json
といったエラーが出てしまいます。
Twitter4J 3.0.5に変更する
「Twitter4Jを使ったら10分でつぶやきJavaプログラムが作れました! ~NetBeans編~」にある「依存性追加」の所

ここの3.0.3を
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>3.0.5</version>
</dependency>
とするだけです。実行すると
標準出力では
なまえ :キクタロー
ひょうじ名 :kikutaro_
ふぉろわー数:241
ふぉろー数 :356
と出て、ツイートも
1分もかからない修正(^^)
http.useSSL=trueを指定する
こちらはTwitter4Jの3.0.3をどうしても使いたい、という場合の対処ですが「Twitter4Jを使ったら10分でつぶやきJavaプログラムが作れました! ~NetBeans編~」でプロパティを追加した部分

ここのプロパティの最後に「http.useSSL=true」を追加します。
debug=true
oauth.consumerKey=*********************
oauth.consumerSecret=******************************************
oauth.accessToken=**************************************************
oauth.accessTokenSecret=******************************************
http.useSSL=true
標準出力は先ほどと同じで、ツイートも
とちゃんとできました(^^)
どっちも簡単すぎる(^^;
その他
Twitterで
とコメント頂いて、バージョン範囲指定って何!?と、私自身Mavenのバージョン範囲指定を知りませんでした…(^^;
調べたら、以下のような情報が。こんな書き方できたのか…。
Mavenのバージョン番号の理解
http://docs.oracle.com/cd/E50629_01/core/MAVEN/maven_version.htm
試しにMavenで
<dependency>
<groupId>org.twitter4j</groupId>
<artifactId>twitter4j-core</artifactId>
<version>[3,)</version>
</dependency>
と書いてみました。
すると、手元にない3.0.1や3.0.2,3.0.4がずらずらDownloadされていき、最終的には3.0.5が参照されていました。
うーむ。Maven奥深い(^^;まだまだ勉強が足りないようです。