Facebook API for Java Spring Framework (2013-10-08)

Programming 2012.10.08 21:06

페이스북 API들이 많은데.. 그중에 자바가 제대로 된게 없어서 고생을 하곤했는데..

최근에 다시 검색해보니..

으아니~! Springframework에서도 페이스북 뿐만 아니라 각종 Social용 API를 포함하는 라이브러리를 선보였넹!!


http://www.springsource.org/spring-social


일단 위 페이지가 공식 페이지!


여기서 나는 페이스북 API가 필요하다능!


자~ 그럼 한번 같이 만들어봅시다.


따라하기 전에 먼저...Facebook Developer 사이트에 가셔서 자신의 App을 만들어야 합니다! 이건 구글에 검색해보면 무지 많으니까 찾아보시오!

https://developers.facebook.com/apps


1. 필요한 라이브러리를 Maven으로 가져옵니다.

<properties>

...

<spring-social.version>1.0.2.RELEASE</spring-social.version>

<org.springframework.social-facebook-version>1.0.2.RELEASE</org.springframework.social-facebook-version>

</properties>


...


<dependency>

<groupId>org.springframework.social</groupId>

<artifactId>spring-social-core</artifactId>

<version>${spring-social.version}</version>

</dependency>

<dependency>

<groupId>org.springframework.social</groupId>

<artifactId>spring-social-web</artifactId>

<version>${spring-social.version}</version>

</dependency>

<dependency>

<groupId>org.springframework.social</groupId>

<artifactId>spring-social-facebook</artifactId>

<version>${org.springframework.social-facebook-version}</version>

</dependency>



2. 코드를 작성합니다.

( 공식 document에서는 - http://static.springsource.org/spring-social-facebook/docs/1.0.x/reference/html/connecting.html  Spring의 환경에 맞게 xml로 설정을 불러오게 되어있는데 저는 일단 만들어 테스트해보는게 목적이니까! JunitTest로 그냥 고고싱!)

import java.util.Calendar;

import java.util.List;


import org.junit.Before;

import org.junit.Test;

import org.springframework.social.connect.support.ConnectionFactoryRegistry;

import org.springframework.social.facebook.api.Facebook;

import org.springframework.social.facebook.api.FacebookProfile;

import org.springframework.social.facebook.api.impl.FacebookTemplate;

import org.springframework.social.facebook.connect.FacebookConnectionFactory;


public class FacebookAPITest {


    @Before

    public void setUp() throws Exception {

    }


    @Test

    public void test() {

Long st = Calendar.getInstance().getTimeInMillis();

ConnectionFactoryRegistry registry = new ConnectionFactoryRegistry();

registry.addConnectionFactory(new FacebookConnectionFactory("앱 ID/API 키", "앱 시크릿 코드"));

String accessToken = "액서스토큰"; // access token received from Facebook after OAuth authorization

Facebook facebook = new FacebookTemplate(accessToken);

FacebookProfile profile = facebook.userOperations().getUserProfile();

String myid = profile.getId();

String myname = profile.getName();

System.out.println("my id is '"+myid+"' and my name is '"+myname+".");

System.out.println("============= timestamp : "+(Calendar.getInstance().getTimeInMillis() - st));

st = Calendar.getInstance().getTimeInMillis();

List<FacebookProfile> friends = facebook.friendOperations().getFriendProfiles();

for(FacebookProfile fp : friends){

    System.out.println("Friend name => "+fp.getName());

}

System.out.println("============= timestamp : "+(Calendar.getInstance().getTimeInMillis() - st));

st = Calendar.getInstance().getTimeInMillis();

List<String> fids = facebook.friendOperations().getFriendIds();

for(String id : fids){

    System.out.println("friend id => "+id);

}

System.out.println("============= timestamp : "+(Calendar.getInstance().getTimeInMillis() - st));

st = Calendar.getInstance().getTimeInMillis();

    }


}


3. 실행~


my id is '1178*****' and my name is '*****'.

============= timestamp : 2156

Friend name => J***

Friend name => J****

Friend name => 김****

Friend name => Jon****

Friend name => Ch****

Friend name => Ha****

...

...

...



아...정말.정말.정말.정말 쉬워졌다....-_-!!

저작자 표시 비영리 변경 금지
신고


티스토리 툴바