프로젝트를 진행하다 웹에디터를 이용하여 글을 작성하는 부분을 개발하고 있었다.
그러다 고객의 요구가 글을 작성하다가 동영상 링크를 넣으면 글에 동영상이 표현 되도록 해달라는 요구가 있었다.
평소에 네이버 카페나 블로그에 글을 쓸때 글내용에 동영상을 노출 되도록 하려면 해당 동영상의 공유를 눌러 embed태그를 복사해서 넣는게 일반적이라 생각했는데..대체 왜이런 요구를 했을까..
워드프로레스에 가서 유투브나 비메오의 URL을 붙여 넣고 글을 작성하니 거짓말처럼 동영상이 붙어 나오는게 아닌가..
소스를 들여다보니 oEmbed란게 나오고 이걸 검색하니 여러 결과가 검색 되었다.
우선 해당 동영상이나 게시물의 고유ID를 각 사이트(유투브, 플리커, 비메오 등등)에서 제공하는 oEmbed URL에 요청을 하게 되면 결과 값으로 JSON이나 XML의 형태로 결과값을 내려주게 된다.
https://www.flickr.com/services/oembed?url=http%3A//flickr.com/photos/bees/2362225867/
예로 위의 URL을 요청하게 되면.
<oembed>
<type>photo</type>
<title>Bacon Lollys</title>
<author_name>bees</author_name>
<author_url>https://www.flickr.com/photos/bees/</author_url>
<width>1024</width>
<height>768</height>
<url>
https://farm4.staticflickr.com/3040/2362225867_4a87ab8baf_b.jpg
</url>
<web_page>https://www.flickr.com/photos/bees/2362225867/</web_page>
<thumbnail_url>
https://farm4.staticflickr.com/3040/2362225867_4a87ab8baf_s.jpg
</thumbnail_url>
<thumbnail_width>75</thumbnail_width>
<thumbnail_height>75</thumbnail_height>
<web_page_short_url>https://flic.kr/p/4AK2sc</web_page_short_url>
<license>All Rights Reserved</license>
<license_id>0</license_id>
<html>
<a data-flickr-embed="true" href="https://www.flickr.com/photos/bees/2362225867/" title="Bacon Lollys by bees, on Flickr"><img src="https://farm4.staticflickr.com/3040/2362225867_4a87ab8baf_b.jpg" width="1024" height="768" alt="Bacon Lollys"></a><script async src="//widgets.flickr.com/embedr/embedr.js" charset="utf-8"></script>
</html>
<version>1.0</version>
<cache_age>3600</cache_age>
<provider_name>Flickr</provider_name>
<provider_url>https://www.flickr.com/</provider_url>
</oembed>
위와 같은 결과값을 반환해준다.
html항목의 내용을 긁어다 게시판 글 작성 하는곳에 넣고 글 작성을 해보면 해당 동영상이나 사진이 노출되는 것을 볼수 있다.
그렇다면 웹 에디터에서는 사용자가 일반 URL을 입력하고 저장을 누르면 서버에서는 URL을 검색하고 분석해서 해당 서비스에 oEmbed를 요청해 그곳에서 보내준 Html코드를 URL대신 넣어 글을 저장했다가 상세 화면에서 보여주기만 하면 되는 것이다.
내가 이해기론 이렇게 하면 될것 같은데..맞나??