IndieWeb Twitter 댓글 연동 (2015-02-15)

작성자  
   achor ( Hit: 1046 Vote: 0 )
홈페이지      http://achor.net
분류      기술

계획대로 설 연휴를 맞이하여 Twitter 연동을!

일단 Facebook 보다 어려웠습니다.
연동하면서 가졌던 고민과 나름의 해결책을 간략하게 정리합니다.


예시
http://achor.net/diary/1588
https://www.facebook.com/achor/posts/950974271610142
https://twitter.com/achorism/status/564437481290870786



1. API 부재 문제

(1) Twitter API가 1.1이 되면서 기존 related_results는 더이상 적용되지 않았고,
(2) 새롭게 만들어진 conversation API는 외부에는 공개되지 않고 있었습니다.
(3) 게다가 원글은 reply의 값을 갖고 있지 않은 채 반대로 reply의 글이 원글의 고유값을 갖고 있었습니다.

https://twittercommunity.com/t/related-results-disappeared-from-1-1/10266
https://twittercommunity.com/t/view-conversations-api-support/11090

곧 원글에 달린 댓글을 API로 찾아내는 건 불가능 한 상황이었던 게지요.

결국 해결책은,
Twitter 본연의 페이지에서는 conversation이 다 보여지니 그것을 parsing 하는 방법 뿐이었습니다.


2. Parsing 성능 문제

Twitter의 HTML을 DOM으로 변환, 처리해 보았더니
되긴 하였으나 성능 문제가 대두 되더군요.
ganon 등의 빠르다는 외부 오픈소스를 이용해 봐도 마찬가지였습니다.
가뜩이나 좋지 않은 제 서버는 DOM 변환, 처리하는 데 한 세월이더군요.

https://code.google.com/p/ganon/
http://simplehtmldom.sourceforge.net/

결국 preg_match_all을 통해 날코딩을 해봤더니 훨씬 낫네요.
다만 Twitter의 소스 변경에 따라 매번 수정을 해줘야 하는 문제가. ㅠㅠ


3. Date/Time 표현 문제

지난 번 Facebook 연동 시에도 나중에 한 번에 처리할 요량으로 Timezone 문제는 그냥 두긴 했었습니다.

이번 Twitter는 API로 값 자체를 받는 게 아닌 parsing 방식을 이용하다 보니
일정한 시간이 흐르기 전까진 정확한 시간이 아닌 5분 전, 2시간 전 등의 인간친화적 시간값밖에 얻질 못하더군요.

계산하여 표현하면 되긴 한데,
문제는 Facebook과 Twitter에서 비슷한 시간에 댓글을 달 시
그 순서가 엇갈릴 수 있다는 점이었습니다.

일단 이것은 미해결.
Twitter의 수집값이 정교하진 않지만 터무니 없진 않아서 큰 문제는 아닐 듯 싶고,
Twitter에서 정확한 값을 전달 받지 못하는 한 이를 해결할 방법이 없기도 하고요.

하는 김에
Facebook, Twitter와 제 홈페이지 자체의 댓글, Trackback까지도 시간 순 정렬하여
댓글류는 한 번에 볼 수 있도록 정리해 놨습니다.


4. 댓글 저장 문제

Facebook이나 Twitter의 댓글을 제 서버에 저장할 것이냐,의 문제는
실질적으로는 저작권법과 개인정보보호법 등의 현행 법률 상의 문제도 1차적으로 검토해 봐야겠지만
댓글 작성자의 편의적 측면도 고려해야 했습니다.

제 서버에 댓글이 저장된다면
댓글을 Twitter에 남긴 사람이 글을 수정/삭제 했을 때 제 서버의 댓글 또한 동일한 처리를 해줘야 하겠지요.
이는 작성자가 수동으로 할 수 있게끔 기능을 추가하거나
혹은 매칭 확인 후 자동으로 처리해 줘야 할 것인데,
귀찮더군요.

저장하지 않는 것으로 결정했습니다.

참고로 법률적인 문제라면,
저작권법 상으로는 내 게시물에 대한 댓글이라 하더라도 작성자의 동의 없이 복제한다는 게 민감할 수 있고,
개인정보보호법 상으로는 댓글 상 개인정보에 해당하는 사항은 일단 마스킹 처리가 되어야 하겠고, ID 등의 식별값을 저장하는 것도 조금 민감할 수 있겠습니다.
물론 저는 법률 전문가는 아니니 그저 참고만. -__-;


5. 쌍방향 동기화 문제

Facebook이나 Twitter에서 남긴 댓글을 저장하지 않는다고 했을 때
제 홈페이지에 남긴 댓글을 Facebook이나 Twitter에 동기화 시키는 것이 다시 문제로 남게 됩니다.

제 홈페이지에서 SNS로의 동기화는
그것이 본문이든 댓글이든 예전부터 이미 구현돼 있었습니다만
이번에 역으로 동기화도 해놓다 보니
댓글이 중복될 수 있게 됐습니다.

제 홈페이지에 남긴 댓글을 Twitter에서 저장없이 그냥 보여줄 수는 없으니 Twitter에 저장해야 할 것인데,
그럴 경우 다시 제 홈페이지에서도 보여지게 되어
결국 같은 댓글이 두 번 보여지겠지요.

물론 계산하여 생략시킬 수도 있긴 하겠습니다만
역시 귀찮음에,
제 홈페이지에서 남긴 댓글을 SNS로 동기화 시킬 시에는 새로운 글로 저장시키게 해놓았습니다.

제 홈페이지의 게시물을 Facebook이나 Twitter로 보내는 경우가 많지 않아
댓글이 달릴 원문 자체가 없는 문제도 있긴 하고요.



아무튼 드디어 Facebook과 Twitter의 댓글 연동을 마무리 하였네요.

아직 1주일이나 설 연휴가 더 남아 있어서 뭘 더 해볼까 싶긴 한데
현재 Naver나 Tistory, Cyworld 등의 국내 각종 블로그나 Pinterst, Tumblr 등의 외산 SNS도 본문 동기화는 되고 있어서
뭐 적당한 고생을 하면 대충 구현은 할 수 있을 것도 같긴 한데,
한편으론 그럴 필요 있겠나, 싶기도 하네요.

아무튼 끝!

- achor


본문 내용은 3,568일 전의 글로 현재의 관점과 다를 수 있습니다.

Post: https://achor.net/board/diary/1589
Trackback: https://achor.net/tb/diary/1589
RSS: https://achor.net/rss/diary

Share 밴드공유 Naver Blog Share Button
Facebook에서 보기 
Twitter에서 보기 

Login first to reply...

Tag
- Twitter: 노회찬 대표와 점심식사를... (2010-03-20 00:48:51)- 홈페이지: 테스트 (2015-11-06 00:36:56)

- 프로그래밍: 이 글의 본질은 (2014-10-20 01:34:57)- 홈페이지: Windows Server 2008 간략한 설치기 (2009-02-25 18:36:07)

- IndieWeb: 제2회 IndieWeb Meetup (2015-03-01 11:16:13)- 홈페이지: 관련글 (2010-03-22 01:22:57)

- Twitter: 정책공감, 어쩔 것이냐 (2011-03-11 11:29:19)- 프로그래밍: jQuery 기본 (2013-11-12 16:23:02)

- 홈페이지: Opengraph 및 Google Map 적용 (2016-08-06 02:18:25)- 홈페이지: 아처다이어리 App (2014-05-23 01:11:08)



     
Total Article: 1961, Total Page: 273
Sun Mon Tue Wed Thu Fri Sat
1
애견카페
2 3 4 5 6 7
IndieWeb 한국모임
8
IndieWeb Facebook.. [1]
9 10 11 12 13 14
15
IndieWeb Twitter 댓글..
16 17
문화일기 177 Kingsma..
18
EXID
19
새해 복 많이 받으..
20
IndieWeb 네이버 카..
나가수 박정현을..
이정현과 대학로 M..
21
레고
22
서버 처리속도.. [1]
설 연휴를 보내.. [1]
23 24 25 26 27 28
제2회 IndieWeb Meetup

  당신의 추억

ID  

  그날의 추억

Date  

  Poll
Only one, 주식 or 코인?

주식
코인

| Vote | Result |
First Written: 09/27/2001 13:51:56
Last Modified: 09/06/2021 17:51:19
추천글closeopen