This project is a JAVA library which allows you to consume the Twitter API.
In your pom.xml, add the following dependency and replace VERSION
with the version you wish:
<dependency>
<groupId>io.github.redouane59.twitter</groupId>
<artifactId>twittered</artifactId>
<version>VERSION</version>
</dependency>
To be able to see library logs, also add sl4j references :
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.7.30</version>
</dependency>
In order to use your own developer credentials, you have several options :
File example :
{
"apiKey": "xxx",
"apiSecretKey": "xxx",
"accessToken": "xxx",
"accessTokenSecret": "xxx"
}
Pass through java argument your file path like -Dtwitter.credentials.file.path=/your/path/to/json
. Then instantiate the client like
TwitterClient client = new TwitterClient();
or
TwitterClient twitterClient = new TwitterClient(TwitterClient.OBJECT_MAPPER
.readValue(new File("/your/path/to/json"), TwitterCredentials.class));
TwitterClient twitterClient = new TwitterClient(TwitterCredentials.builder()
.accessToken("<access_token>")
.accessTokenSecret("<secret_token>")
.apiKey("<api_key>")
.apiSecretKey("<secret_key>")
.build());
NB : Your twitter credentials can be found in your twitter app page in the Key and tokens page.
See :
See :
TwitterClient twitterClient = new TwitterClient(TwitterClient.OBJECT_MAPPER
.readValue(new File("/your/path/to/json"), TwitterCredentials.class));
Tweet tweet = twitterClient.getTweet("1224041905333379073");
System.out.println(tweet.getText());
System.out.println(tweet.getCreatedAt());
System.out.println(tweet.getLang());
System.out.println(tweet.getLikeCount());
System.out.println(tweet.getRetweetCount());
System.out.println(tweet.getReplyCount());
System.out.println(tweet.getUser().getName());
User user = twitterClient.getUserFromUserName("RedouaneBali");
System.out.println(tweet.getUser().getName());
System.out.println(tweet.getUser().getDisplayedName());
System.out.println(tweet.getUser().getDateOfCreation());
System.out.println(tweet.getUser().getDescription());
System.out.println(tweet.getUser().getTweetCount());
System.out.println(tweet.getUser().getFollowersCount());
System.out.println(tweet.getUser().getFollowingCount());
System.out.println(tweet.getUser().getPinnedTweet());
System.out.println(tweet.getUser().getPinnedTweet());
System.out.println(tweet.getUser().getLocation());
System.out.println(tweet.getUser().getId());
System.out.println(tweet.getUser().getUrl());
If you want to contribute to the project, don't hesitate to submit pull requests. To add a new feature :
- Create the interface method in the related interface ( e.g ITwitterClientV2.java)
- If needed, add the endpoint URL in URLHelper.java
- Implement your method in the child class ( e.g TwitterClient.java)
- Don't forget to add your unit tests in
src/test/java/io/github/redouane59/twitter/unit
Code style is also available in .idea/codeStyles/GoogleStyle.xml
file.
I would like to give special thanks to @hypr2771 @mmornati @andypiper @igorbrigadir @sparack for having helped me building this Twitter API library for Java. The tool is now working and I hope that students, junior and senior developers will enjoy it, being able to play easily with twitter data using Java programming language.