자바라이브러리의 twitter4j를 이용하여 타임라인 목록을 출력해보도록 하겠습니다.


다운로드는 2가지 방법이 존재합니다.


1. JAR파일 다운로드


http://twitter4j.org/en/index.html


위 사이트를 가셔서 twitter4j-x.x.x.zip파일을 다운로드 받으십니다.





받으신 다음 압축해제를 하신 후 lib 디렉토리에 존재하는 

twitter4j-core-x.x.x.jar 파일을 본인의 lib 디렉토리내에 include 해주도록 합니다.


2. pom.xml을 이용한 다운로드


1
2
3
4
5
<dependency>
    <groupId>org.twitter4j</groupId>
    <artifactId>twitter4j-core</artifactId>
    <version>4.0.2</version>
</dependency>



위처럼 twitter4j 관련 dependency를 pom.xml 에 추가해주도록 합니다.



트위터 앱 생성하기


이어서 consumer key, consumer secret, accesstoken 등을 받기 위하여 

앱을 하나 생성해보도록 하겠습니다.




1. 트위터에 접속하여 앱생성하고자 하는 아이디로 로그인을 합니다.


2. https://apps.twitter.com/ 






"URL 접속 후 Create New App" 버튼 클릭을 합니다.




3. 하단 네모친 박스에 필수값들을 입력합니다.


     1) Name : 앱의 이름을 작성

     2) Description : 앱에 대한 설명인대 최소 10자이상 작성해주세요

     3) Website : 실제 동작될 도메인을 작성해주시면 되는데 

                       저는 로컬도메인을 사용하고자 하는데 "http://localhost:포트번호" 로는 접속이 안되는거 같습니다.

                       그래서 "http://127.0.0.1:포트번호" 로 작성하였습니다.

     4) Callback URL : 타임라인 글쓰기와 같은 POST 기능을 사용할때 필요한거 같긴한대... 

                               그냥 단순히 타임목록을 가져오고자 하므로 생략하도록 하겠습니다.




4. 약관동의





3번에 대한 작성이 완료된 후 스크롤을 하단으로 내리면 

약관동의 하는 부분이 있는데 체크 해주신 다음 

"Create your Twitter application" 버튼을 클릭합니다.



5. 기본앱 생성완료






위와같이 앱이 생성되었습니다.

이어서 access token 값을 생성해야 하므로

 Keys and Access Tokens 탭을 클릭하여 액세스토큰을 만들도록 합니다.



6. Access Token 생성하기





이동하신 탭에서 하단에 Toekn Actions 영역을 보시면 "Create my access token" 버튼을 클릭합니다.



7. Access Token 생성완료





그럼 위처럼 Toekn Actions는 사라지고 

Access Token / Access Token Secret 값이 생성된것을 확인 할 수 있겠습니다.


그럼 샘플코드를 적용하기 위하여 간단한 예를 들어보도록 하겠습니다.


JAVA프로젝트 생성후 다운로드 받은 JAR파일을 해당 프로젝트에 INCLUDE 한 후 

Java Build Path -> Libraries -> Add Jars 로 JAR파일 INCLUDE해주었습니다.


※ 웹프로젝트는 lib 디렉토리 혹은 pom.xml에 dependency를 등록하셨다면 별도로 include 해주실 필요는 없습니다.


트위터 타임라인 가져오기 샘플코드


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public static void main(String ar[]) {
    try {
        AccessToken accesstoken = new AccessToken("Access Token", "Access Token Secret");
        Twitter twitter = TwitterFactory.getSingleton();
        twitter.setOAuthConsumer("Consumer Key (API Key)", "Consumer Secret (API Secret)");
        twitter.setOAuthAccessToken(accesstoken);
        User user = twitter.verifyCredentials();
         
        List<Status> list = twitter.getUserTimeline();
        System.out.println("타임라인 계정:"+user.getScreenName());
        for(Status status : list) {
            System.out.println("작성자:"+status.getUser().getScreenName());
            System.out.println("타임라인내용:"+status.getText());
        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}



AccessToken 객체생성할때 필요 parameter와 

setOAuthConsumer 필요 parameter들은 

access token 생성한 "Keys and Access Tokens" 탭내에 모두 존재하므로 

각각의 값들을 대입해주도록 합니다.



실행결과




정상적으로 트위터 API 를 이용하여 타임라인의 목록이 출력되었습니다.


한번에 20개밖에 나오지 않아요!!


DEFAULT 20개의 타임라인 글밖에 나오지 않습니다.

더보기 및 한페이지에 글목록 수를 조절하고자 하신다면 


twitter4j의 "Paging" 객체를 호출 후 기존 코드인 getUserTimeline() 메서드의 

parameter로 넘겨주시면 되겠습니다.

페이징을 처리하고 싶으시다면 

하단코드를 기존코드에 일부 적용해주시면 되겠습니다.


1
2
3
//Paging(페이지번호,한페이지당출력글갯수)
Paging page = new Paging (1, 50);
List<Status> list = twitter.getUserTimeline(page);



by 개발로짜