diff options
Diffstat (limited to 'juick-api/src/main/java/com/juick/api')
-rw-r--r-- | juick-api/src/main/java/com/juick/api/FacebookPageManager.java | 34 | ||||
-rw-r--r-- | juick-api/src/main/java/com/juick/api/TopManager.java | 30 |
2 files changed, 38 insertions, 26 deletions
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()); }); } } |