aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--juick-api/build.gradle1
-rw-r--r--juick-api/src/main/java/com/juick/api/FacebookPageManager.java34
-rw-r--r--juick-api/src/main/java/com/juick/api/TopManager.java30
3 files changed, 38 insertions, 27 deletions
diff --git a/juick-api/build.gradle b/juick-api/build.gradle
index efd6af84..bba2be89 100644
--- a/juick-api/build.gradle
+++ b/juick-api/build.gradle
@@ -17,7 +17,6 @@ dependencies {
compile 'com.github.pengrad:java-telegram-bot-api:3.5.2'
compile 'com.github.messenger4j:messenger4j:1.0.0-M2'
- compile "org.springframework.social:spring-social-facebook:2.0.3.RELEASE"
compile "org.springframework.social:spring-social-twitter:1.1.2.RELEASE"
compile 'org.apache.commons:commons-email:1.5'
compile 'org.imgscalr:imgscalr-lib:4.2'
diff --git a/juick-api/src/main/java/com/juick/api/FacebookPageManager.java b/juick-api/src/main/java/com/juick/api/FacebookPageManager.java
new file mode 100644
index 00000000..cb16dd0b
--- /dev/null
+++ b/juick-api/src/main/java/com/juick/api/FacebookPageManager.java
@@ -0,0 +1,34 @@
+package com.juick.api;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.http.converter.json.MappingJackson2HttpMessageConverter;
+import org.springframework.stereotype.Component;
+import org.springframework.web.client.RestTemplate;
+import org.springframework.web.util.UriComponents;
+import org.springframework.web.util.UriComponentsBuilder;
+
+@Component
+public class FacebookPageManager {
+ private static Logger logger = LoggerFactory.getLogger(FacebookPageManager.class);
+ @Value("${facebook_page_id}")
+ private String pageId;
+ @Value("${facebook_page_access_token}")
+ private String accessToken;
+
+ public void post(String status, String link) {
+ UriComponents uriComponents = UriComponentsBuilder.fromUriString("https://graph.facebook.com/{page_id}/feed")
+ .queryParam("message", status)
+ .queryParam("link", link)
+ .queryParam("access_token", accessToken)
+ .buildAndExpand(pageId);
+ RestTemplate api = new RestTemplate();
+ api.getMessageConverters().add(new MappingJackson2HttpMessageConverter());
+ ResponseEntity<String> response = api.exchange(uriComponents.toUri(),
+ HttpMethod.POST, null, String.class);
+ logger.info("Facebook response: {}", response.getBody());
+ }
+}
diff --git a/juick-api/src/main/java/com/juick/api/TopManager.java b/juick-api/src/main/java/com/juick/api/TopManager.java
index 58559faa..b7734a1b 100644
--- a/juick-api/src/main/java/com/juick/api/TopManager.java
+++ b/juick-api/src/main/java/com/juick/api/TopManager.java
@@ -18,41 +18,23 @@
package com.juick.api;
import com.juick.Message;
-import com.juick.Tag;
import com.juick.service.MessagesService;
import com.juick.util.MessageUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.social.facebook.api.Facebook;
-import org.springframework.social.facebook.api.PagePostData;
-import org.springframework.social.facebook.api.impl.FacebookTemplate;
import org.springframework.stereotype.Component;
-import javax.annotation.PostConstruct;
import javax.inject.Inject;
-import java.util.stream.Collectors;
@Component
public class TopManager {
private static Logger logger = LoggerFactory.getLogger(TopManager.class);
@Inject
private MessagesService messagesService;
- @Value("${facebook_appid}")
- private String FACEBOOK_APPID;
- @Value("${facebook_secret}")
- private String FACEBOOK_SECRET;
- @Value("${facebook_page_id}")
- private String facebookPageId;
-
- private Facebook facebookTemplate;
-
- @PostConstruct
- public void init() {
- facebookTemplate = new FacebookTemplate(String.format("%s|%s", FACEBOOK_APPID, FACEBOOK_SECRET));
- }
+ @Inject
+ private FacebookPageManager facebookPageManager;
@Scheduled(fixedRate = 3600000)
public void updateTop() {
@@ -60,12 +42,8 @@ public class TopManager {
logger.info("added {} to popular", m);
messagesService.setMessagePopular(m, 1);
Message jmsg = messagesService.getMessage(m);
- String status = StringUtils.defaultString(jmsg.getText());
- PagePostData post = new PagePostData(facebookPageId)
- .message(status).link( "https://juick.com/" + jmsg.getMid(), null,
- null, null, null)
- .tags(jmsg.getTags().stream().map(Tag::getName).toArray(String[]::new));
- facebookTemplate.pageOperations().post(post);
+ String status = MessageUtils.getMessageHashTags(jmsg) + StringUtils.defaultString(jmsg.getText());
+ facebookPageManager.post(status, "https://juick.com/" + jmsg.getMid());
});
}
}