/twittered

Twitter API client for Java developers

Primary LanguageJavaApache License 2.0Apache-2.0

This project is a JAVA library which allows you to consume the Twitter API.

v2

Standard

Premium

Configuration

Maven Central

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>

If you are using Gradle Kotlin DSL, make sure you have MavenCentral among the available repositories:

repositories {
    mavenCentral()
    // [...]
}

Then add the following line to your dependencies block:

implementation("io.github.redouane59.twitter:twittered:VERSION")

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 :

Using a json file

File example :

{
  "apiKey": "xxx",
  "apiSecretKey": "xxx",
  "accessToken": "xxx",
  "accessTokenSecret": "xxx"
}
With program argument

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

Using deserialization in your code
TwitterClient twitterClient = new TwitterClient(TwitterClient.OBJECT_MAPPER
                                                    .readValue(new File("/your/path/to/json"), TwitterCredentials.class));

With hard-coded values

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.

Available methods

See :

Code samples

See :

Basic examples

1. Init TwitterClient

TwitterClient twitterClient = new TwitterClient(TwitterClient.OBJECT_MAPPER
                                  .readValue(new File("/your/path/to/json"), TwitterCredentials.class));

2. Get Tweet object from tweet id and display some information

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());

3. Get User object from username and display some information

User   user   = twitterClient.getUserFromUserName("RedouaneBali");
System.out.println(user.getName());
System.out.println(user.getDisplayedName());
System.out.println(user.getDateOfCreation());
System.out.println(user.getDescription());
System.out.println(user.getTweetCount());
System.out.println(user.getFollowersCount());
System.out.println(user.getFollowingCount());
System.out.println(user.getPinnedTweet());
System.out.println(user.getPinnedTweet());
System.out.println(user.getLocation());
System.out.println(user.getId());
System.out.println(user.getUrl());

Contribution

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.

External Resources

Twitter Developers docs

Special thanks

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.