이동식 저장소

MiTweet 개발일지 10 본문

프로젝트/MiTweet

MiTweet 개발일지 10

해스끼 2020. 9. 19. 13:03

타임라인을 계속 만지고 있다.

리트윗된 인용 트윗 대응

인용한 트윗이 리트윗되면 그 트윗은 "인용"과 "리트윗"이라는 두 개의 속성을 갖게 된다. 이전에는 트윗의 속성이 하나만 있다고 가정하고 개발했는데, 이러면 리트윗된 인용 트윗을 단순히 인용 트윗으로 보여주게 된다. 따라서 다중 속성을 처리할 수 있도록 코드를 수정하였다.

 

그런데 API v2에 버그가 있는 듯하다. 리트윗된 트윗의 정보는 제대로 불러오는데, 인용된 트윗은 "트윗이 존재하지 않는다"는 에러가 발생한다. 일단은 인용된 트윗의 id를 바탕으로 트윗을 직접 불러오도록 수정했고, 나중에 v2가 완성되면 다시 살펴보기로 했다.

OAuth 1.0a 지원

지금까지는 트윗을 불러올 때 OAuth 2.0 Bearer를 사용했다. 그런데 Bearer는 앱(``MiTweet``)을 의미하기 때문에 user-specific한 정보를 가져올 수 없었다. 예를 들어 Bearer로는 내가 팔로하는 플텍 계정의 트윗을 불러올 수 없다. 플텍 계정은 외부로부터의 접근을 차단하며, 오로지 그 계정을 팔로하는 사람만 트윗 등의 정보를 볼 수 있기 때문이다. 따라서 타임라인에 플텍 계정의 트윗을 보여주려면 OAuth 1.0a user context를 사용해야만 한다.

 

사실 ``Twitter4J``는 이미 OAuth 1.0a를 지원한다. 그러나 나는 ``Twitter4J``에 구현되지 않은 API v2를 사용하고 있어서 직접 헤더에 Authorization 정보를 넣어야 했다. 그런데 이 과정이 실로 복잡하다.. 잘못 구현한 부분이 있어도 ``401 Authorization error``만 뜨고 어떠한 에러 메시지도 주지 않기 때문에 디버깅하기도 어려웠다.

 

혹시 OAuth 1.0a 구현에 어려움을 겪으시는 분이 있으면 최대한 도와드리겠습니다. 댓글 남겨주세요.

 

이틀동인 고민해서 어찌저찌 구현하긴 했다. 이제 플텍 트윗도 불러올 수 있다!

TODO

  • mediaUri가 가끔씩 null인 오류 수정
  • 리트윗, 마음글, 답글 기능 추가

'프로젝트 > MiTweet' 카테고리의 다른 글

MiTweet 개발일지 12  (0) 2020.09.30
MiTweet 개발일지 11  (0) 2020.09.30
MiTweet 개발일지 9  (0) 2020.09.11
MiTweet 개발일지 8  (0) 2020.09.08
MiTweet 개발일지 7  (0) 2020.09.04
Comments