diff --git a/pom.xml b/pom.xml
index d55c91b2..b0386784 100644
--- a/pom.xml
+++ b/pom.xml
@@ -6,7 +6,7 @@
com.github.redouane59.twitter
twittered
- 1.23
+ 1.24
twittered
java client for twitter API
diff --git a/src/main/java/com/github/redouane59/twitter/ITwitterClientV2.java b/src/main/java/com/github/redouane59/twitter/ITwitterClientV2.java
index 86139c24..6fa30f36 100644
--- a/src/main/java/com/github/redouane59/twitter/ITwitterClientV2.java
+++ b/src/main/java/com/github/redouane59/twitter/ITwitterClientV2.java
@@ -5,6 +5,7 @@
import com.github.redouane59.twitter.dto.stream.StreamRules.StreamRule;
import com.github.redouane59.twitter.dto.tweet.LikeResponse;
import com.github.redouane59.twitter.dto.tweet.Tweet;
+import com.github.redouane59.twitter.dto.tweet.TweetListV2;
import com.github.redouane59.twitter.dto.tweet.TweetSearchResponse;
import com.github.redouane59.twitter.dto.user.FollowResponse;
import com.github.redouane59.twitter.dto.user.User;
@@ -291,6 +292,11 @@ public interface ITwitterClientV2 {
*/
UserListV2 getLikingUsers(String tweetId);
-
+ /**
+ * Allows you to get information about a user’s liked Tweets calling https://api.twitter.com/2/users/:id/liked_tweets
+ *
+ * @param userId ID of the user to request liked Tweets for.
+ */
+ TweetListV2 getLikedTweets(String userId);
}
diff --git a/src/main/java/com/github/redouane59/twitter/TwitterClient.java b/src/main/java/com/github/redouane59/twitter/TwitterClient.java
index 3ba0aca5..b97cf1be 100644
--- a/src/main/java/com/github/redouane59/twitter/TwitterClient.java
+++ b/src/main/java/com/github/redouane59/twitter/TwitterClient.java
@@ -21,6 +21,7 @@
import com.github.redouane59.twitter.dto.tweet.LikeResponse;
import com.github.redouane59.twitter.dto.tweet.MediaCategory;
import com.github.redouane59.twitter.dto.tweet.Tweet;
+import com.github.redouane59.twitter.dto.tweet.TweetListV2;
import com.github.redouane59.twitter.dto.tweet.TweetSearchResponse;
import com.github.redouane59.twitter.dto.tweet.TweetSearchResponseV1;
import com.github.redouane59.twitter.dto.tweet.TweetSearchResponseV2;
@@ -303,6 +304,12 @@ public UserListV2 getLikingUsers(final String tweetId) {
return getRequestHelper().getRequest(url, UserListV2.class).orElseThrow(NoSuchElementException::new);
}
+ @Override
+ public TweetListV2 getLikedTweets(final String userId) {
+ String url = this.getUrlHelper().getLikedTweetsUrl(userId);
+ return getRequestHelper().getRequest(url, TweetListV2.class).orElseThrow(NoSuchElementException::new);
+ }
+
@Override
public Tweet retweetTweet(String tweetId) {
String url = this.getUrlHelper().getRetweetTweetUrl(tweetId);
diff --git a/src/main/java/com/github/redouane59/twitter/dto/tweet/TweetListV2.java b/src/main/java/com/github/redouane59/twitter/dto/tweet/TweetListV2.java
new file mode 100644
index 00000000..600290fc
--- /dev/null
+++ b/src/main/java/com/github/redouane59/twitter/dto/tweet/TweetListV2.java
@@ -0,0 +1,17 @@
+package com.github.redouane59.twitter.dto.tweet;
+
+import com.github.redouane59.twitter.dto.tweet.TweetV2.TweetData;
+import java.util.List;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+
+@AllArgsConstructor
+@NoArgsConstructor
+@Builder
+@Getter
+public class TweetListV2 {
+
+ List data;
+}
diff --git a/src/main/java/com/github/redouane59/twitter/helpers/URLHelper.java b/src/main/java/com/github/redouane59/twitter/helpers/URLHelper.java
index 0f9b0164..fb017759 100644
--- a/src/main/java/com/github/redouane59/twitter/helpers/URLHelper.java
+++ b/src/main/java/com/github/redouane59/twitter/helpers/URLHelper.java
@@ -404,4 +404,9 @@ public String getLikingUsersUrl(final String tweetId) {
return ROOT_URL_V2 + TWEETS + "/" + tweetId + "/liking_users"
+ "?" + USER_FIELDS + ALL_USER_FIELDS;
}
+
+ public String getLikedTweetsUrl(final String userId) {
+ return ROOT_URL_V2 + USERS + "/" + userId + "/liked_tweets"
+ + "?" + TWEET_FIELDS + ALL_TWEET_FIELDS;
+ }
}
diff --git a/src/test/java/com/github/redouane59/twitter/nrt/ITwitterClientV2Test.java b/src/test/java/com/github/redouane59/twitter/nrt/ITwitterClientV2Test.java
index 1e2efb01..50f70db7 100644
--- a/src/test/java/com/github/redouane59/twitter/nrt/ITwitterClientV2Test.java
+++ b/src/test/java/com/github/redouane59/twitter/nrt/ITwitterClientV2Test.java
@@ -13,6 +13,7 @@
import com.github.redouane59.twitter.dto.stream.StreamRules.StreamRule;
import com.github.redouane59.twitter.dto.tweet.LikeResponse;
import com.github.redouane59.twitter.dto.tweet.Tweet;
+import com.github.redouane59.twitter.dto.tweet.TweetListV2;
import com.github.redouane59.twitter.dto.tweet.TweetSearchResponse;
import com.github.redouane59.twitter.dto.tweet.TweetType;
import com.github.redouane59.twitter.dto.tweet.TweetV2;
@@ -344,6 +345,15 @@ public void testGetLikingUsers() {
assertNotNull(result.getData().get(0).getCreatedAt());
}
+ @Test
+ public void testGetLikedTweets() {
+ TweetListV2 result = twitterClient.getLikedTweets("1120050519182016513");
+ assertTrue(result.getData().size() > 0);
+ assertNotNull(result.getData().get(0).getId());
+ assertNotNull(result.getData().get(0).getText());
+ assertNotNull(result.getData().get(0).getCreatedAt());
+ }
+
@Test
public void testGetUserIdFromAccessToken() {
assertEquals(this.userId, twitterClient.getUserIdFromAccessToken());
diff --git a/src/test/java/com/github/redouane59/twitter/unit/UrlHelperTest.java b/src/test/java/com/github/redouane59/twitter/unit/UrlHelperTest.java
index e173ad2c..6b3aa4e1 100644
--- a/src/test/java/com/github/redouane59/twitter/unit/UrlHelperTest.java
+++ b/src/test/java/com/github/redouane59/twitter/unit/UrlHelperTest.java
@@ -300,4 +300,11 @@ public void testLikingUsers() {
"https://api.twitter.com/2/tweets/1354143047324299264/liking_users?user.fields=id,created_at,entities,username,name,location,url,verified,profile_image_url,public_metrics,pinned_tweet_id,description,protected",
urlHelper.getLikingUsersUrl("1354143047324299264"));
}
+
+ @Test
+ public void testLikedTweetsUrl() {
+ String userId = "12345";
+ assertEquals("https://api.twitter.com/2/users/" + userId + "/liked_tweets?" + URLHelper.TWEET_FIELDS + URLHelper.ALL_TWEET_FIELDS,
+ urlHelper.getLikedTweetsUrl(userId));
+ }
}