Google Fusion Tables의 SQL API를 이용하려면 OAuth 2.0나 Client Login을 이용해야 한다.

나는 OAuth 2.0 인증을 통해 사용자 인증을 하기로 결정하였다. 서버 측은 Node.js 프레임워크를 이용하기로 결정하고 인증을 위해 NPM중 passport라는 Node.js용 인증 프레임워크를 선택하였다.

 

 

우선 "모던 웹을 위한 Node.js프로그래밍"이라는 책을 보고 기본적인 Node.js에 대한 이해와 Express 프레임워크, ejs, haml 같은 개념을 익혔다.

이후에 아래와 가은 명령어로 passport를 설치 해준다.

npm install passport
					

https://github.com/jaredhanson/passport 가면 passport 에 대한 설명을 볼 수 있다.

 

passport는 Strategies라는 형태로 각각의 서비스에 맞는 인증 방법을 제공한다. 또한 Google의 OAuth Strategy에 맞게 아래의 패키지도 설치해준다.

npm install passport-google-oauth

 

 

내가 하고자 하는 것은 passport를 통하여 Google 로그인을 OAuth 2.0의 방법으로 하고 자 하는 것이다.

이를 위해서 https://code.google.com/apis/console/에 가서 기본적인 등록을 맞추고

"Create an OAuth 2.0 client ID…"를 눌러 OAuth 2.0 클라이언트 아이디를 생성한다.

 

내가 만들 것은 Web application이기 때문에 이것을 선택하고, site이름에 알맞은 프로토콜과 url을 넣어주면 된다. 참고로 나와 같은 경우는 방화벽 때문인지 무언인지 모르겠지만 IP등록하려니 자꾸 오류가 떠서 그냥 127.0.0.1:3000로 적어서 테스트만 해보았다.

 

아래그림과 같이 Client ID와 Client secret 키를 얻는데 그 값을 node_modules\passport-google-oauth\examples\oauth2에 app.js 파일에 붙여 넣는다. 그리고 한가지를 세팅을 더 해 주어야 하는데 Redirect URIs가 oauth2callback으로 되어 있으므로 "Edit setting"에 가서 app.js에 있는 callbackURL의 주소와 맞춰 주어야 한다.

 

 

신고
Posted by 강부자아들

1.redeem 및 인증

일반적으로 Foursquare의 Special Offer를 사용하기 위해 가게 Venue의 직원에게 체크인을 한 것을 보여주어 자신이 쿠폰이나 할인정보에 대해 "unlocking"되어 있고 혜택을 줄 것을 요구한다.

 

그림 1 Foursquare Special Offer 획득 전과 획득 후(unlocked)

Business 사업자의 Dash Board에는 사용자의 Check-In이 기록될지는 몰라도 사실 가게주인이 이것이 사용된 Special Offer인지 아닌지 확인하기 위해서는 별도의 인증번호를 통해 POS(Point of Sales)시스템과 연동된 좀 더 정교한 방법이 필요하다.

카카오톡의 플러스 친구는 아래와 같이 매장직원용 확인 버튼을 만들어서 사용을 확인할 수 있게 돕고 있다.

그림 2 카카오톡 플러스 친구 쿠폰 인증

아마도 Facebook이 태그를 기반으로 할인혜택이나 스탬프를 적립하게 하는 회사인 Tagtile을 인수한 것도 자신들의 서비스인 Facebook Deals에서 사용자들에 대한 행동이나 Deal에 대해 좀 더 정교하고 편리한 프로세스를 통해 사용자들의 행동을 추적하려는 것이라고 생각된다.

그림 3 태그기반의 체크인 서비스인 Tagtile

Foursquare도 American Express 카드사와의 제휴를 통해 새로운 방법을 생각해 냈다. American Express Special이라는 새로운 Offer를 제공하는 것이다. 구체적으로는 먼저 사용자가 American Express 카드사의 홈페이지에서 Foursquare Connect를 통해 Foursquare 계정으로 로그인을 한다. 그 다음 American Express Special Offer를 제공하는 Venue에서 카드로 결제를 하면 자동을 체크인을 하게 되고 혜택을 받게 되는 것이다.

그림 4 American Express 홈페이지에 foursquare계정을 연결

 

그림 5 foursquare connect 권한 설정

 

그림 6 American Express 카드번호 설정

 

 

 

 

그림 7 American Express , Foursquare 체크인 프로세스

 

2. Deals(소셜커머스)

Foursquare는 Business 사업자(가게주인)를 위해 전용 페이지와 DashBoard, Special Offer 기능 등을 제공하고 있다. Special Offer의 종류는 아래 그림과 같다.

이러한 Special Offer는 사용자의 화면에 아래와 같이 표시된다.

 

소셜커머스 업체에서도 소상공인들을 위한 소셜커머스 딜을 진행하고 있는데 이러한 소셜커머스의 쿠폰 정보가 Foursquare와 통합된다. Foursquare는 LivingSocial, Gilt City, AT&T Interactive, BuyWithMe, Zozi , Groupon(예정)같은 소셜커머스 업체와 제휴를 통해 Foursquare 앱에서 사용자들이 소셜커머스를 이용할 수 있게 해준다. Foursquare의 Explore메뉴를 클릭하면 Venue정보와 Special Offer를 확인할 수 있는데 Special Offer에 Business 사업자의 할인정보 뿐만 아니라 소셜커머스 업체의 소셜커머스 쿠폰정보도 보여주는 것이다.

 

3. Explore

Foursquare는 2011년 Explore는 Venue추천엔진을 기반으로 사용자가 관심 있어 할 장소를 제공하는 서비스로 geosocial과 지역검색을 새로운 단계로 향상시켰다. 이 서비스는 사용자가 POI를 검색어로 검색할 때, 위치기반으로 검색을 할 수 있게 해주는데 결과 값은 자신의 친구들의 데이터를 기반으로 믿을 만한 데이터를 제공한다고 했는데 실제로 제가 써본 결과 상당히 괜찮은 결과를 보여주는 것 같았습니다.

그림 8 Foursquare Explore 웹 화면

다음과 같은 질문에 Explore 서비스가 적합하다고 합니다.

  • 내가 예전에 가봤던 혹은 가보지 않았던 장소는 어디인가?
  • 어느 장소가 인기 있는가?
  • 내 친구들이 추천하는 장소는 어디인가?
  • Special Offer나 소셜커머스를 진행하고 있는 곳은 어디인가?
  • 내가 저 장소에 가면 무엇을 해야하나?

 

 

아래 그림 Foursquare의 개발자 블로그에서 가져온 사진인데여 Explore에서 추천이 이뤄지는 방식에 대한 기본적인 그래프로 x축으로 증가할수록 많은 사용자가 방문한 것이고, y축으로 증가할수록 체크인 횟수가 많은 것입니다. 정말 많은 사용자들이 체크인을 조금한 지역은 관광지나 꼭 한 번쯤은 가봐야 할 장소이며, 사용자가 조금 많고 체크인 수가 많다면 특정 지역에서 유명한 맛집이나 특정지역에서 가볼만한 정도의 장소인 것입니다. 사용자는 거의 없지만 방문횟수가 높으면 직장일 확률이 높고, 사용자도 많고 체크인수도 많다면 학교일 가능성이 높다고 합니다.

그림 9 사용자수와 방문수에 따른 카테고리 구분(뉴욕 )

신고
Posted by 강부자아들

HTTP 프로토콜은 캐시 메커니즘을 정의하고 있다. 프록시 웹서버는 페이지, 파일, 이미지 등을 캐시 할 수 있다. 클라이언트가 서버로 요청을 보낼 때, 클라이언트는 서버에게 요청하는 웹페이지가 갱신되었는지 아닌지 확인하는 요청을 보낼 수 있다. 클라이언트는 Conditional GET Request라는 특별한 파라미터를 가진 요청을 서버로 보냄으로써 서버에 있는 웹페이지와 같은 리소스가 갱신되었는지 안 되었는지 확인할 수 있다. 이 요청에는 If-Modified-Since라는 특별한 헤더 정보가 붙게 된다. 이 해더는  RFC 2822 형태로 날짜와 시간 값이 붙게 된다. 서버와 클라이언트 사이의 프록시 서버는 이 날짜와 시간 값을 확인하여 조건이 맞으면 캐시된 웹페이지를 전달하게 되고 304 Not Modified 헤더를 클라이언트에 응답으로 보낸다.

신고
Posted by 강부자아들


티스토리 툴바