Merry Christmas

'twitter'에 해당되는 글 1건

  1. 2010.11.14 트위터 API(twitter4j) 사용법. ^^

모바일에서 발생한 이벤트를 트위터 사이트에 글로서 남겨야 할 업무가 생겼다.

처음 내가 한일은 물론 관련 API 검색이었다.
내가 검색했던 블로그가 꽤 자세히 OAuth와 사용한 twitter4j API 소스까지 제공했지만.쓸려고 보니 deprecated된 옛날 버전의 방법을 써서 결국 이 글을 남기게 됐다. 사실 그 소스는 문제없이 동작했지만 이클립스에 나오는 그 밑줄쫙~~그어지는게 보기 싫어서..-_-ㅋㅋ

OAuth나 트위터 용어들을 자세히 알필요는 없지만 그래도 기본적으로 알아둬야할 필요는 있는거 같다.
모르면 좀 답답할지도. ㅋㅋ
이 글은 배경지식 그딴거 무시하고 순수하게 트윗에 글 남기는 방법만을 간단하게 기록할 것이다.
나중에 나든 아님 다른사람들이 고생하지 않게 하기 위해서. -0-

======================= 자 사설 끝. 이제부터 설명시작..^^ =======================
트위터 클라이언트는 크게 web 환경과 desktop 환경. 이렇게 2가지로 나뉜다.

web방식은 톰캣같은 WAS도 있어야 하고 일단 귀찮아서. desktop 방식으로 테스트를 진행해 볼려고 한다.
web방식은 다른 블로그 사이트들에 많이 있을것이니 그걸 참조하시길. -_-

http://twitter.com/  <==일단 트윗사이트에 접속한다. 로긴성공 후 나온 첫 페이지의 우측 하단에 보면 아래 그림과 같은 부분이 있다.
우린 Developer다. 당연히 Developer 링크를 클릭한다.



아래와 같은 페이지를 만나게 될텐데. app 등록을 하는 2번 링크를 클릭한다.
간단히 설명하면 이 과정은 User에게 트위터 관련 서비스를 제공할 Provider, 즉 제공자를 등록하는 것이다.
이 제공자는 트위터 서비스를 이용하기 위해(트위터 입장에선 제공자도 User로 볼수도 있을것같다.-_-) OAuth 인증방식을 이용해서 인증을 한 후에는 사용자 계정을 이용해서 다양한 트위터 서비스를 User에게 제공할수가 있다.



자. 등록페이지다. 귀찮겠지만 등록하지 않으면 우리는 테스트를 해볼수가 없다. GG. -_-
어플 타입은 처음 언급한데로 웹과 데스크탑(모바일) 이렇게 두가지인데. 웹방식으로 선택하면 콜백 URL을 등록할수 있는데
이 URL은 사용자가 트위터페이지로 가서 추후에 자기 계정을 프로바이더가 사용하게 할건지 말건지를 결정하는데 사용하게 허락을 하면 트위터 페이지가 콜백 URL로 등록된 페이지로 보내주는데 이때 쓰인다. 물론 콜백 URL은 API 상에서도 설정가능하다. ^^

우리의 목적은 테스트다. 등록사항중에 다른건 그냥 막(?) 입력해도 된다.
그중에 어플리케이션타입은 클라이언트, 디폴트 액세스 타입은 읽고쓰기.. 요거 두개만 잘 선택하면 된다. 



등록버튼을 클릭하게 되면. 동의하라는 팝업이 뜨는데. 우린 선택의 여지가 없다. 동의해야지 -_-

등록이 성공했으면 아래와 같이 몇가지 정보들이 출력이 되는데 여기서 우리가 실질적으로 사용할 정보는 Consumer Key, Consumer secret 이렇게 두개다. 이 값들을 이용해서 정당한(어플등록이된) 프로바이더인지 트위터에 인증을 받게 된다.
이 정보들은 자신의 계정에 저장이 되고 추후에도 확인해 볼수 있으니 메모따윈 필요 없다. -_-


아래에 코드는 twitter4j 예제 코드에 나와있는걸 약간(?) 고친 코드다. 사실 거의 고친게 없다. ㅋㅋㅋ -0-

단순히 트위터에 글을 남기는 코드는 60여줄 밖에 안된다. 주석, 정보출력 줄을 빼면 정말 간단하다.
너무 간단해서 설명이 필요없을 정도지만 그래도 코멘트를 약간 더 달면..

19번째 줄에서 트위터 객체를 가져와서 우리가 어플등록을 완료한 후 나왔던 CONSUMER_KEY와 CONSUMER_SECRET
키를 setOAuthConsumer() 메소드를 이용해서 셋팅을 한다.

23번째 줄에서 리퀘스트 토큰을 얻는다.
32번째 줄에서 requestToken.getAuthorizationURL() 메소드를 이용해서 얻은 URL을 브라우저 주소창에 입력해서 접속을 한다.
그럼 인증화면이 나오게 되고 사용자가 허락 버튼을 누르게 되면 핀번호가 나오게 된다.

최종적으로 트위터에 글을 남기기 위해선 Access토큰이 필요하다. 이 Access 토큰은 38번째 줄에서 보듯이 리퀘스트 토큰과 핀번호로 생성할수 있다.

자!! 마지막이다. 액세스 토큰까지 얻었으면 45번째 줄의 updateStatus() 메소드를 이용해서 글을 남길수 있다.
중복된 메세지는 남길수 없게끔 되어있다. 그래서 61번째 줄처럼 매번 새로운 값을 찍기위해서 시스템 시간값을 입력값으로 하였다.

결론적으로 리퀘스트 토큰은 프로바이더(유저에게 서비스를 제공하는 어플)의 인증 성공시 얻어지게 되고
액세스 토큰은 리퀘스트 토큰과 유저가 자신의 계정을 사용하도록 허락시 발생되는 핀번호를 이용해서 생성이 된다.

결국 어플이 생성한 액세스 토큰(액세스 토큰, 액세스토큰 시크릿) 만 디비에 저장해 두면 언제든지 꺼내서 쓸수있다는 결론이다. 실제로 아직 해보진 않았지만 아마 그렇겠지. -_-
젤 아래에 결과 화면 남기고 이번 포스팅을 마물 한다. ^^




인증 URL로 들어가면 아래와 같이 로긴창이 뜬다. 사용자 정보 입력후 허락 버튼을 누른다.


자..허락을 했으면 아래와 같은 핀번호가 주어지게 된다. 이 핀 번호는 매번 위와같이 허락하는 과정을 거칠때마다 바뀐다.
혹여나 이 핀번호로 테스트를 하고자 해도 될리가 없다. -_-(내 개인정보는 소중하다!!!)



결과 화면..

Posted by 말라깽
: