Twitter is now X. So is Twitter4J.
Author Archives: yusuke
Twitter4J 4.1.2 released
Twitter4J 4.1.1 released
What’s new in 4.1.1?
- Moved some Twitter API 1.1 specific classes / interfaces from twitter4j.* to twitter4j.v1.*
- It is now possible to configure Twitter4J with environment variable
Twitter4J 4.1.0 released
Twitter4J is back with a major rework.
What’s new in 4.1.0?
- Require Java 8+
Java 7 has been EOL’ed. Java 17 is much more fun and productive to work with. - Compatible with Java Module System (Java 9+)
You can just declare ‘require org.twitter4j’ in module-info.java to add dependency to your module. - Immutable everywhere
There is no setters which may cause undesirable behavior in multi-threaded environments. Use builder instead. You can find example codes at Twitter4J/twitter4j-examples/src/main/java/examples/.
What’s next?
Twitter API v2 support is coming.
Twitter4J 4.0.7 リリース
Twitter4J 4.0.7をthe Maven Central Repositoryにアップロードしました。
このバージョンはdestroyDirectMessageの挙動を除き*ほぼ*以前の4.0.xリリースと互換があります。
4.0.6からの違いはこちらでご確認ください。
これはJava 6, 7をサポートする最後のリリースとなる予定です。
次期リリースからはJava 8以降が必要となります。
General availability of Twitter4J 4.0.7
Twitter4J 4.0.7 is available on the Maven Central Repository.
This version is *mostly* compatible with previous 4.0.x releases except for destroyDirectMessage behavior.
Check the full list of changes between 4.0.6 and 4.0.7.
This will be the last version to support Java 6 and Java 7.
Java 8 will be the minimum required version from the next release.
#Twitter4J 4.0.7-SNAPSHOT リリース – DMを利用するアプリは要移行
最新のTwitter4JスナップショットビルドがTwitter4J.orgのリポジトリよりご利用いただけます。
Twitterは2018年8月16日に古き良きDMのエンドポイントを廃止します。
ダイレクトメッセージを扱うアプリケーションを引き続き稼働させるにはTwitter4J 4.0.7に移行してください。
バージョン4.0.7はごく一部を除きこれまでのバージョンと互換性があります。プロジェクトを再ビルドする必要はあります。
こちらで4.0.6から4.0.7でのAPIの変更を確認していただけます。
次のメソッドは非推奨となりました。
ResponseList
ResponseList
ResponseList
ResponseList
しかしながら、内部的にこれらの非推奨となったメソッドは新しいAPIを呼び出しています。つまり、Twitter4Jをバージョンアップしておけばアプリは今週の大量虐殺後も引き続き稼働しますのでご安心ください。
4.1か5.0かわかりませんが今後のリリースでこれらの非推奨メソッドは削除されますので適宜DirectMessageList getDirectMessages(int count)を使うように書き換えてください。
またdestroyDirectMessage(long id)は全てのgetterがUnsupportedOperationExceptionをスローするダミーオブジェクトを返しますので注意してください。。新しいエンドポイントは戻り値がないためです。
releasing #Twitter4J 4.0.7-SNAPSHOT – Apps using DM need to migrate
Latest Twitter4J snapshot build is now available at our in-house repository.
Twitter is going to sunset good old DM endpoints on August 16th, 2018.
In order to keep your chatbot working properly, you’ll need to migrate to Twitter4J 4.0.7.
This version is compatible with previous version with a slight exception. Rebuilding your application is required.
Here you can see the full list of API changes between 4.0.6 and 4.0.7.
The following methods are now deprecated.
ResponseList
ResponseList
ResponseList
ResponseList
The above deprecated methods are now internally invoking the latest and greatest end points. This means, your application will be working correctly without any changes even after the massacre coming this week.
But they will be removed in the future release – 4.1.0, 5.0.0 or whatever.
Please migrate to DirectMessageList getDirectMessages(int count) in a timely manner.
Note that destroyDirectMessage(long id) returns an object with dummy getters which throw UnsupportedOperationException, because the new endpoint doesn’t return any value.
#Twitter4J 4.0.4 リリース – 長文DMサポート、Lambda表記サポートなど
Twitter4J 4.0.4をリリースしました。Maven central repositoryとTwitter4J.orgのスナップショットリポジトリよりお使い頂けます。
マイグレーション
ごく一部、バイナリの非互換性があるため、バージョン4.0.4へ移行する際はプロジェクトを再ビルドしてください。
長文DMのサポート
Twitterは7月より140文字を超えるDMを送受信できるようになります。Twitter4J 4.0.4以降を使えばコードの変更なく長文DMを受け取るようになります。
twitter community.com: Removing the 140 character limit from Direct Messages
Lambda表記のサポート
Twitter4JがついにLambda表記をサポートしました。onStatus(Consumer)とonException(Consumer)を使うことでストリーミングAPIのリスナアクションをLambda表記で実装できます。
これは、Twitter4J固有のファンクショナルインターフェースを導入することで実現しており、Twitter4Jを引き続きJava6(Maven central repositoryバージョン)並びにJava5(twitter4j.orgバージョン)と互換性があります。
様々な箇所での可変長引数サポート
Twitter4Jは様々な箇所で可変長引数を受け取れるようになりました。スクリーン名や、フィルタリングの単語を指定するのに面倒なnew String[]{}を書く必要がなくなります。
ラムダ表記と可変長引数により、コードがいかにシンプルになるか、以下の例をご覧ください:
twitter4j/examples/lambda/TwitterStreamLambda.java
SavedSearch idタイプの移行
SavedSearchのidを保存するのにintは足りなくなりました。SavedSearch#getId()はlongを返すようになりました。SavedSearchの直列化形式は過去のリリースと互換性がありませんのでご注意ください。
#Twitter4J 4.0.4 released – supports longer DM texts, lambda expression and more
We have just release Twitter4J 4.0.4. The build is available at the Maven central repository and Twitter4J.org’s snapshot repository.
Migration
We have made some slight changes that could introduce binary compatibility, and it is encouraged to REBUILD your project when migrating to version 4.0.4.
Support for longer DM texts
Twitter will be allowing users to send and receive 140+ DMs in July. Projects using Twitter4J 4.0.4+ will receive longer DM text without any code change.
twitter community.com: Removing the 140 character limit from Direct Messages
Support for lambda expression
Twitter4J is finally lambda ready. You can implement streaming API’s listener actions in lambda expression using onStatus(Consumer) and onException(Consumer).
This is done by introducing Twitter4J specific functional interface, and Twitter4J will be continued to be compatible with Java 6+.
Support for variable arguments in many places
Twitter4J now accepts variable arguments in many places. It is no longer required to put new String[]{} when passing list of screen names, filtering terms.
Please take a few seconds to see how lambda and varargs will simplify Twitter4J’s client code:
twitter4j/examples/lambda/TwitterStreamLambda.java
SavedSearch id type migration
int is no more sufficient to handle SavedSearch’s id. The return type of SavedSearch#getId() is now long. Note that serialized objects of this class is not compatible with previous releases.