SNS Embed?
최근 기사나 블로그들을 보면 SNS의 게시글을 SNS에서 보는 것처럼 그대로 가져온 것을 보신적 있으신가요? 프로젝트에 해당 기능을 추가하며 내용을 공유하고자 작성합니다.
해당 기능은 모든 소셜에서 퍼가기 기능을 통해 HTML 코드를 반환하고 있습니다. 이번 포스트에서는 해당 기능을 소셜의 URL만을 이용하여 HTML을 반환받는 API Server를 만들어볼 예정입니다.
각 소셜마다 공식 Document를 확인해보면 Embed API를 확인할 수 있습니다.
Social API List
Code Example
실제 프로젝트에서는 에디터의 발췌과정에서 URL을 분석하여 발췌 결과물을 소셜 게시물로 표현했지만 편의상 API의 형태로 작성하였습니다.
Git Repository
Spring Boot Setting
예제 프로젝트에서 사용할 기술은 다음과 같습니다.
- Spring Boot Starter Web
- Spring Boot에서 사용하는 Web Starter Project 입니다
- Auto Configuration을 지원합니다
- Spring MVC, REST 및 내장 Tomcat을 지원합니다.
해당 모듈의 의존성을 추가해줍니다.
- build.gradle
1
implementation 'org.springframework.boot:spring-boot-starter-web'
- pom.xml
1
2
3
4<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
Controller
1 |
|
Service
1 |
|
Test
1 |
|
Request & Response
Sample Request
1 |
|
Sample Response
- Success
1 |
|
- Fail
1 |
|
Embed 처리가 가능한 소셜 별 URL
- Facebook
- https://www.facebook.com/{page-name}/posts/{post-id}
- https://www.facebook.com/{username}/posts/{post-id}
- https://www.facebook.com/{page-name}/photos/{photo-id}/
- https://www.facebook.com/{username}/photos/{photo-id}/
- https://www.facebook.com/{page-name}/videos/{video-id}/
- https://www.facebook.com/{username}/videos/{video-id}/
- Instagram
- https://www.instagram.com/p/{post-id}/
- Twitter
- https://twitter.com/{username}/status/{post-id}
- TikTok
- https://www.tiktok.com/{username}/video/{post-id}