Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

Twitter4Jを使ったら10分でつぶやきJavaプログラムが作れました! ~SSL対応の補足編~

前にブログで書いた「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編~」にある「依存性追加」の所

f:id:kikutaro777:20140118003256j:plain

ここの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編~」でプロパティを追加した部分

f:id:kikutaro777:20140118012629j:plain

ここのプロパティの最後に「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奥深い(^^;まだまだ勉強が足りないようです。

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村