사용자지원 - Facebook 연동

개요

Facebook 연동은 시스템에서 facebook에 담벼락, 앨범, 프로필 조회 등의 기본 기능을 제공한다.

설명

  • Facebook 연동는 facebook에 대한 기능을 사용하기 위한 목적으로 담벼락, 앨범, 프로필 조회 등의 기본 기능을 수반한다.
  ① SignIn : Facebook을 연결하기 위한 연동을 한다. 
  ② Feed : 담벼락에 글을 읽어온다.
  ③ Albums : Facebook에 게시된 앨범을 읽어온다.
  ④ Profile : Facebook에 자신의 프로필을 읽어온다.
  ⑤ Sign Out : Facebook의 연결을 해제한다.

관련소스

유형대상소스명비고
Controlleregovframework.com.uss.ion.fbk.web.EgovFacebookController.javaFacebook 연동을 위한 컨트롤러 클래스
Controlleregovframework.com.uss.ion.fbk.web.FacebookSimpleSignInAdapter.javaFacebook 연동을 위한 로그인 클래스
Controlleregovframework.com.uss.ion.fbk.web.FacebookUserCookieGenerator.javaFacebook 연동을 위한 Cookie관리 클래스
Controlleregovframework.com.uss.ion.fbk.web.FacebookUserInterceptor.javaFacebook 연결을 확인하는 인터셉터 클래스
Serviceegovframework.com.uss.ion.fbk.service.EgovFacebookConfig.javaFacebook을 연동을 위한 JavaConfig
Serviceegovframework.com.uss.ion.fbk.service.FacebookSecurityContext.java연차 관리를 위한 서비스 인터페이스
ServiceImplegovframework.com.uss.ion.fbk.service.impl.EgovSimpleConnectionSignUp.java연차 관리를 위한 서비스 구현 클래스
VOegovframework.com.uss.ion.fbk.service.FacebookUser.javaFacebook userVO 클래스
JSPWEB-INF/jsp/egovframework/com/uss/ion/fbk/EgovFacebookAlbum.jspFacebook 선택한 앨범을 보여주는 페이지
JSPWEB-INF/jsp/egovframework/com/uss/ion/fbk/EgovFacebookAlbums.jspFacebook 앨범 목록을 보여주는 페이지
JSPWEB-INF/jsp/egovframework/com/uss/ion/fbk/EgovFacebookFeed.jspFacebook 담벼락 메시지를 보여주고 입력하는 페이지
JSPWEB-INF/jsp/egovframework/com/uss/ion/fbk/EgovFacebookHome.jspFacebook 연동을 위한 링크페이지
JSPWEB-INF/jsp/egovframework/com/uss/ion/fbk/EgovFacebookProfile.jspFacebook 프로필을 조회하는 페이지
JSPWEB-INF/jsp/egovframework/com/uss/ion/fbk/EgovFacebookSignin.jspFacebook 연동을 위한 페이지
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연동정보관리UserConnectionFacebook 연동정보를 관리

※ context-social.xml 에서 H2로 Embedded-database로 생성함

관련설정

Facebook 개발자 사이트 등록

https://developers.facebook.com/ 사이트에 등록하여 appId, appSecret 발급

globals.properties 설정

# Social(Facebook, Oauth 컴포넌트 사용시 활용)
facebook.appId         = 
facebook.appSecret     =

Maven 설정

        <!-- facebook 연동시 추가 -->
        <dependency>
		    <groupId>org.springframework.social</groupId>
		    <artifactId>spring-social-facebook</artifactId>
		    <version>2.0.3.RELEASE</version>
		    <exclusions>
            	<exclusion>
            		<artifactId>spring-web</artifactId>
            		<groupId>org.springframework</groupId>
            	</exclusion>
            	<exclusion>
            		<artifactId>spring-webmvc</artifactId>
            		<groupId>org.springframework</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>

context-social.xml 설정

    <!-- facebook 연동 설정 -->
    <bean id="connectionFactory" class="org.springframework.social.facebook.connect.FacebookConnectionFactory">
		<constructor-arg value="${facebook.appId}" />
		<constructor-arg value="${facebook.appSecret}" />
	</bean>
 
    <bean id="textEncryptor" class="org.springframework.security.crypto.encrypt.Encryptors" factory-method="noOpText" />
 
    <jdbc:embedded-database id="social.dataSource" type="H2">
        <jdbc:script location="classpath:/social.sql" />
    </jdbc:embedded-database>

egov-com-social.xml 설정

<mvc:default-servlet-handler /> 
	<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/**" />
			<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" />

EgovWebApplicationInitializer.java 설정

		//-------------------------------------------------------------
		// HiddenHttpMethodFilter 설정 (Facebook OAuth 사용시 설정)
		//-------------------------------------------------------------
		FilterRegistration.Dynamic hiddenHttpMethodFilter = servletContext.addFilter("hiddenHttpMethodFilter", new HiddenHttpMethodFilter());
		hiddenHttpMethodFilter.addMappingForUrlPatterns(null, false, "/*");

관련화면 및 수행메뉴얼

Facebook 로그인

ActionURLController method
로그인/uss/ion/fbk/facebookSignin.do없음(mvc:view-controller 대체)


로그인 : Facebook 사용을 위해 로그인을 한다.


Facebook 목록

ActionURLController method
목록/uss/ion/fbk/facebook.dohome

facebooklist.jpg

Feed : Facebook 담벼락 목록 조회를 한다.
Albums : Facebook에 등록한 앨범을 조회한다.
Profile : Facebook에 프로필을 조회한다.
Sign Out : Facebook 연동정보 삭제


Facebook feed

ActionURLController method
조회/uss/ion/fbk/feed.doshowFeed
등록/uss/ion/fbk/feed.dopostUpdate

RequestMethod별로 메소드가 구분된다.

post: 입력한 글을 게시판다.


Facebook album

ActionURLController method
조회/uss/ion/fbk/albums.doshowAlbums
상세조회/uss/ion/fbk/album/{albumId}showAlbum



Facebook profile

ActionURLController method
조회/uss/ion/fbk/profile.doprofile

Facebook sign out

ActionURLController method
로그아웃/uss/ion/fbk/profile.do없음(mvc:view-controller 대체)
 
egovframework/com/v3.10/uss/ion/fbk/facebook.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki