Facebook 연동은 시스템에서 facebook에 담벼락, 앨범, 프로필 조회 등의 기본 기능을 제공한다. 1
 
  ① SignIn : Facebook을 연결하기 위한 연동을 한다. 
  ② Feed : 담벼락에 글을 읽어오고, 게시한다.
  ③ Albums : Facebook에 게시된 앨범을 읽어온다.
  ④ Profile : Facebook에 자신의 프로필을 읽어온다.
  ⑤ Sign Out : Facebook의 연결을 해제한다.
 
	
		| 유형 | 대상소스명 | 비고 | 
	
		| Controller | egovframework.com.uss.ion.fbk.web.EgovFacebookController.java | Facebook 연동을 위한 컨트롤러 클래스 | 
	
		| Controller | egovframework.com.uss.ion.fbk.web.FacebookSimpleSignInAdapter.java | Facebook 연동을 위한 로그인 클래스 | 
	
		| Controller | egovframework.com.uss.ion.fbk.web.FacebookUserCookieGenerator.java | Facebook 연동을 위한 Cookie관리 클래스 | 
	
		| Controller | egovframework.com.uss.ion.fbk.web.FacebookUserInterceptor.java | Facebook 연결을 확인하는 인터셉터 클래스 | 
	
		| Service | egovframework.com.uss.ion.fbk.service.EgovFacebookConfig.java | Facebook을 연동을 위한 JavaConfig | 
	
		| Service | egovframework.com.uss.ion.fbk.service.FacebookSecurityContext.java | 연차 관리를 위한  서비스 인터페이스 | 
	
		| ServiceImpl | egovframework.com.uss.ion.fbk.service.impl.EgovSimpleConnectionSignUp.java | 연차 관리를 위한 서비스 구현 클래스 | 
	
		| VO | egovframework.com.uss.ion.fbk.service.FacebookUser.java | Facebook userVO 클래스 | 
	
		| JSP | WEB-INF/jsp/egovframework/com/uss/ion/fbk/EgovFacebookAlbum.jsp | Facebook 선택한 앨범을 보여주는 페이지 | 
	
		| JSP | WEB-INF/jsp/egovframework/com/uss/ion/fbk/EgovFacebookAlbums.jsp | Facebook 앨범 목록을 보여주는 페이지 | 
	
		| JSP | WEB-INF/jsp/egovframework/com/uss/ion/fbk/EgovFacebookFeed.jsp | Facebook 담벼락 메시지를 보여주고 입력하는 페이지 | 
	
		| JSP | WEB-INF/jsp/egovframework/com/uss/ion/fbk/EgovFacebookHome.jsp | Facebook 연동을 위한 링크페이지 | 
	
		| JSP | WEB-INF/jsp/egovframework/com/uss/ion/fbk/EgovFacebookProfile.jsp | Facebook 프로필을 조회하는 페이지 | 
	
		| JSP | WEB-INF/jsp/egovframework/com/uss/ion/fbk/EgovFacebookSignin.jsp | Facebook 연동을 위한 페이지 | 
 
	
		| 테이블명 | 테이블명(영문) | 비고 | 
	
		| Facebook연동정보관리 | UserConnection | Facebook 연동정보를 관리 | 
※ context-social.xml 에서 H2로 Embedded-database로 생성함
 
# Social(Facebook, Oauth 컴포넌트 사용시 활용)
facebook.appId         = 
facebook.appSecret     =
 
<!-- facebook 연동시 추가 -->
<dependency>
	<groupId>org.springframework.social</groupId>
	<artifactId>spring-social-security</artifactId>
	<version>1.1.0.RELEASE</version>
	<exclusions>
		<exclusion>
			<artifactId>spring-security-web</artifactId>
			<groupId>org.springframework.security</groupId>
		</exclusion>
	</exclusions>
</dependency>
<dependency>
	<groupId>org.apache.httpcomponents</groupId>
	<artifactId>httpclient</artifactId>
	<version>4.3.4</version>
	<exclusions>
		<exclusion>
			<artifactId>commons-logging</artifactId>
			<groupId>commons-logging</groupId>
		</exclusion>
	</exclusions>
</dependency>
<dependency>
	<groupId>com.h2database</groupId>
	<artifactId>h2</artifactId>
	<version>1.4.180</version>
</dependency>
 
    <bean id="jdbcTemplate" class="org.springframework.jdbc.core.JdbcTemplate" c:_-ref="social.dataSource" />
 
    <jdbc:embedded-database id="social.dataSource" type="H2">
        <jdbc:script location="classpath:/social.sql" />
    </jdbc:embedded-database>
 
<mvc:resources mapping="/css/**" location="/css/" />
<mvc:resources mapping="/html/**" location="/html/" />
<mvc:resources mapping="/images/**" location="/images/" />
<mvc:resources mapping="/js/**" location="/js/" />
<mvc:default-servlet-handler />
 
<!-- facebook 연동시  -->
<bean class="org.springframework.social.connect.web.ProviderSignInController">
	<constructor-arg ref="connectionFactoryLocator" />
	<constructor-arg ref="usersConnectionRepository" /> 
	<constructor-arg>
		<bean class="egovframework.com.uss.ion.fbk.web.FacebookSimpleSignInAdapter"/>
	</constructor-arg>
	<property name="signInUrl" value="/uss/ion/fbk/facebookSignin.do"/>
	<property name="postSignInUrl" value="/uss/ion/fbk/facebook.do"/>
</bean>
 
<mvc:interceptors>
	<mvc:interceptor>
		<mvc:mapping path="/uss/ion/fbk/*.do" />
		<bean class="egovframework.com.uss.ion.fbk.web.FacebookUserInterceptor" >
			<constructor-arg ref="usersConnectionRepository"/>
		</bean>
	</mvc:interceptor>
</mvc:interceptors>
 
<mvc:view-controller path="/uss/ion/fbk/facebook.do" view-name="egovframework/com/uss/ion/fbk/EgovFacebookHome" />
<mvc:view-controller path="/uss/ion/fbk/facebookSignin.do" view-name="egovframework/com/uss/ion/fbk/EgovFacebookSignin" />
<mvc:view-controller path="/uss/ion/fbk/facebookSignout.do" view-name="egovframework/com/uss/ion/fbk/EgovFacebookHome" />
 
<!-- OAuth 및 facebook 연동-->
<filter>
	<filter-name>hiddenHttpMethodFilter</filter-name>
	<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
	<filter-name>hiddenHttpMethodFilter</filter-name>
	<url-pattern>/*</url-pattern>
</filter-mapping>
 
<servlet-mapping>
	<servlet-name>action</servlet-name>
	<!-- <url-pattern>*.do</url-pattern> -->
	<!-- OAuth 사용시 / 로 변경 -->
	<url-pattern>/</url-pattern>
</servlet-mapping>
 
	
		| Action | URL | Controller method | 
	
		| 로그인 | /uss/ion/fbk/facebookSignin.do | 없음(mvc:view-controller 대체) | 

로그인 : Facebook 사용을 위해 로그인을 한다.
 
	
		| Action | URL | Controller method | 
	
		| 목록 | /uss/ion/fbk/facebook.do | home | 

Feed : Facebook 담벼력 목록 조회 및 글을 등록한다.
Albums : Facebook에 등록한 앨범을 조회한다.
Profile : Facebook에 프로필을 조회한다.
Sign Out : Facebook 연동정보 삭제
 
	
		| Action | URL | Controller method | 
	
		| 조회 | /uss/ion/fbk/feed.do | showFeed | 
	
		| 등록 | /uss/ion/fbk/feed.do | postUpdate | 
RequestMethod별로 메소드가 구분된다.
 
  
 
post: 입력한 글을 게시판다.
 
	
		| Action | URL | Controller method | 
	
		| 조회 | /uss/ion/fbk/albums.do | showAlbums | 
	
		| 상세조회 | /uss/ion/fbk/album/{albumId} | showAlbum | 
 
	
		| Action | URL | Controller method | 
	
		| 조회 | /uss/ion/fbk/profile.do | profile | 
 
	
		| Action | URL | Controller method | 
	
		| 로그아웃 | /uss/ion/fbk/profile.do | 없음(mvc:view-controller 대체) | 
 
    
   
  이 위키의 내용은 다음의 라이센스에 따릅니다 :
CC Attribution-Noncommercial-Share Alike 3.0 Unported전자정부 표준프레임워크 라이센스(
바로가기)
전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.