From fb5acff652f55a97b842c01de1b273c5da4a3f2f Mon Sep 17 00:00:00 2001 From: Vitaly Takmazov Date: Thu, 18 Jan 2018 12:39:03 +0300 Subject: drop spring-social-facebook --- juick-api/build.gradle | 1 - .../java/com/juick/api/FacebookPageManager.java | 34 ++++++++++++++++++++++ .../src/main/java/com/juick/api/TopManager.java | 30 +++---------------- 3 files changed, 38 insertions(+), 27 deletions(-) create mode 100644 juick-api/src/main/java/com/juick/api/FacebookPageManager.java (limited to 'juick-api') 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 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()); }); } } -- cgit v1.2.3