====== 사용자지원 - Facebook 연동 ======
===== 개요 =====
**Facebook 연동**은 시스템에서 facebook에 담벼락, 앨범, 프로필 조회 등의 기본 기능을 제공한다.
===== 설명 =====
  * **Facebook 연동**는 facebook에 대한 기능을 사용하기 위한 목적으로 담벼락, 앨범, 프로필 조회 등의 기본 기능을 수반한다.
    ① 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 연동을 위한 페이지|
|Message properties|/resources/egovframework/message/com/uss/ion/fbk/message_en.properties|페이스북 연동을 위한 Message properties(한글)|
|Message properties|/resources/egovframework/message/com/uss/ion/fbk/message_ko.properties|페이스북 연동을 위한 Message properties(영문)|
=== 관련테이블 ===
^테이블명^테이블명(영문)^비고^
|Facebook연동정보관리|UserConnection|Facebook 연동정보를 관리|
※ context-social.xml 에서 H2로 Embedded-database로 생성함
===== 관련설정 =====
=== Facebook 개발자 사이트 등록 ===
https://developers.facebook.com/ 사이트에 등록하여 appId, appSecret 발급\\
{{:egovframework:com:v3.9:uss:ion:fbk:facebook.jpg?800|}}
=== globals.properties 설정 ===
# Social(Facebook, Oauth 컴포넌트 사용시 활용)
facebook.appId         = 
facebook.appSecret     = 
=== Maven 설정 ===
        
        
		    org.springframework.social
		    spring-social-facebook
		    2.0.3.RELEASE
		    
            	
            		spring-web
            		org.springframework
            	
            	
            		spring-webmvc
            		org.springframework
            	
            
		
        
        
            org.apache.httpcomponents
            httpclient
            4.3.4
            
                
                    commons-logging
                    commons-logging
                
            
        
        
            com.h2database
            h2
            1.4.180
        
=== context-social.xml 설정 ===
    
    
		
		
	
    
    
        
    
=== egov-com-social.xml 설정 ===
 
	
		
		
		
			
		
		
		
	
	
		
			
			
				
			
		
	
	
	
	
=== EgovWebApplicationInitializer.java 설정 ===
		//-------------------------------------------------------------
		// HiddenHttpMethodFilter 설정 (Facebook OAuth 사용시 설정)
		//-------------------------------------------------------------
		FilterRegistration.Dynamic hiddenHttpMethodFilter = servletContext.addFilter("hiddenHttpMethodFilter", new HiddenHttpMethodFilter());
		hiddenHttpMethodFilter.addMappingForUrlPatterns(null, false, "/*");
===== 관련화면 및 수행메뉴얼 =====
=== Facebook 로그인 ===
^Action^URL^Controller method^
|로그인|/uss/ion/fbk/facebookSignin.do|없음(mvc:view-controller 대체)|
{{:egovframework:com:v2:uss:facebooksign.jpg|}}\\
로그인 : Facebook 사용을 위해 로그인을 한다.
----
=== Facebook 목록 ===
^Action^URL^Controller method^
|목록|/uss/ion/fbk/facebook.do|home|
{{:egovframework:com:v3.9:uss:ion:fbk:facebooklist.jpg?800}}\\
Feed : Facebook 담벼락 목록 조회를 한다.\\
Albums : Facebook에 등록한 앨범을 조회한다.\\
Profile : Facebook에 프로필을 조회한다.\\
Sign Out : Facebook 연동정보 삭제
----
=== Facebook feed ===
^Action^URL^Controller method^
|조회|/uss/ion/fbk/feed.do|showFeed|
|등록|/uss/ion/fbk/feed.do|postUpdate|
RequestMethod별로 메소드가 구분된다.\\
{{:egovframework:com:v3.9:uss:ion:fbk:facebookfeed.jpg?800|}} \\
post: 입력한 글을 게시판다.\\
----
=== Facebook album ===
^Action^URL^Controller method^
|조회|/uss/ion/fbk/albums.do|showAlbums|
|상세조회|/uss/ion/fbk/album/{albumId}|showAlbum|
{{:egovframework:com:v3.9:uss:ion:fbk:facebookalbum.jpg?600|}} \\
----
=== Facebook profile ===
^Action^URL^Controller method^
|조회|/uss/ion/fbk/profile.do|profile|
----
=== Facebook sign out ===
^Action^URL^Controller method^
|로그아웃|/uss/ion/fbk/profile.do|없음(mvc:view-controller 대체)|