https://dev.twitter.com/blog/api-v1-is-retired
오늘 회사에서 일 하다가 기획자 한 명이 와서 모 사이트의 SNS 데이터 받아오는 기능 하나가 동작하지 않는다고 말해주었다. 확인해 보니 페이스북이나 미투데이 같은 기능은 잘 작동 되는데 트위터가 문제였다. 멀쩡한 데이터를 받아오지 못하는 문제였는데…
확인해보니 트위터의 REST API v1 이 deprecated 되어버려서 생기는 문제였다. 사실 이전부터 트위터에서는 꾸준히 공지를 하고 있었던 부분이라 신경을 진작에 썼어야 하는데… 미처 신경도 못쓰고 있다가 문제가 발생하였다.
이제 모든 API는 v1.1 을 사용해야 작동이 된다. 뭔가 거창하게 썼지만 크게 바뀌는 부분은 없으며 api url을 https://api.twitter.com/1.1/ 로 변경하여 호출하면 해결된다.
가장 많이 쓰는 PHP용 트위터 라이브러리 twitteroauth 에서는 host라는 맴버 변수에 주소만 v1.1로 할당해주면 문제없이 돌아간다. (30분전쯤 1.1로 수정해서 새로 커밋한것으로 보인다.).
문제는 v1 에서 지원하던 기능이 v1.1에서 지원하지 않는 경우인데, 대표적인 것 두가지가 특정 유저의 타임라인을 받아오는 기능과 프로필 이미지를 받아오는 기능이다.
특정 유저의 타임라인을 받아오는 것은 이전처럼 url만 호출해서 편리하게 받아오기는 힘들게 되었지만, 개인 억세스 토큰을 api호출 때 같이 보내면 이전과 같이 편리하게 동작한다. 하지만 프로필 이미지는 이전처럼 편리하게 개인 아이디를 포함한 url 로 불러낼 수 없어서(v1.1 api에는 없음) 편리하게 불러내려면 조금 고민을 해봐야 할 것 같다.
https://dev.twitter.com/docs/api/1.1/overview
https://dev.twitter.com/docs/faq#17750
또 하나의 중요한 점으로는 json포멧으로만 결과값을 돌려준다고 한다.