2012-09-25 9 views
1

내 Ruby on Rails 앱에 각 사용자의 공용 페이지에 대한 하위 도메인 URL이 있습니다. 예 : username.xyz.com다른 하위 도메인 URL을 가리키는 Facebook 페이지 만들기

레일즈의 사용자 페이스 북 페이지에이 URL을 게시하고 싶습니다.

지금까지 Facebook App을 만들고 페이지 탭과 URL을 설정했습니다.

나는 fbgraph 보석을 사용하여 페이스 북 페이지에서이 응용 프로그램을 설정하고 있습니다. (이 페이지는 사용자가 생성되고이 페이지의 관리자 액세스 할 수 있습니다.)

은이 코드를 사용 :이 코드를 사용하여

user = FbGraph::User.me("USER_TOKEN") 
account = user.accounts.select {|account| account if account.name == "PageName"}.first 
page = FbGraph::Page.new(account.identifier).fetch(:access_token =>"Access_token",:fields => :access_token) 
tab = page.tab!(:app_id => "APP_ID_I_CREATED") 

를 URL에 모든 사용자의 페이지 포인트는 APP의 정의 페이지 탭 URL.

나는 모든 사용자의 페이지가 자신의 하위 도메인 URL을 가리 키도록합니다 (예 : user1.xyz.com)

내가 이것을 달성하기 위해 어떻게해야합니까?

+0

- 저는이 디자인 패턴을 추상화하기 위해 루비 젬에서 작업 해 왔습니다. 아직 완료되지는 않았지만 테스트가 완료되었으므로 기고가 느껴지면 지금까지 진행중인 작업을 쉽게 파악할 수 있습니다. 이 시점에서 약 75 %가 완료되었지만 곧 해결하고 싶습니다. http://github.com/switchrails/blotter에 있습니다 (readme는 구형입니다). – lightyrs

답변

0

하위 도메인은 웹 서버에서 처리하지 않으며 DNS에서 처리합니다. 따라서 먼저 everyuser.xyz.com을 웹 서버가있는 IP 주소로 라우팅하도록 DNS를 가져와야합니다.

DNS 작동 방식에 따라 모든 사용자에 대해 DNS 항목이 있어야 할 수 있습니다. 사용자를 만들 때 DNS 하위 도메인을 추가하는 API를 찾을 수 있습니다.

잘 모르기 때문에 이것을 수행하는 방법에 대해 묻지 말고 연구에 관심이 없습니다.

요청을 수락하려면 웹 응용 프로그램도 준비해야하며, @lightyrs에는이를 수행하는 방법에 대한 설명이 잘 나와 있습니다.

+0

나는 네가 머리가 맞다고 생각하지만이 접근법은 불필요하게 복잡하다고 생각한다. 필요한 것은 적절한 하위 도메인으로 리디렉션되는 탭 URL에서 컨트롤러 작업을 수행하는 것입니다. Facebook은 요청 및 사용자 요청에 대한 다양한 메타 데이터를 제공 할 서버에서 디코딩 할 수있는 'signed_request'를 제공합니다. – lightyrs

+0

나는이 시점에서 나를 조종하고 있는지 잘 모르겠다. 그러나 나는 99 % 확실하다는 답을 위해 downvote를 고맙게 생각하지 않는다. – lightyrs

+0

질문에 대한 귀하의 의견은 잘못된 말린입니다. 페이스 북 페이지 탭 애플리케이션에 대해 논의 중입니다. 브라우저에 URL을 입력 할 필요가 없습니다. 특정 페이지 탭이 요청 될 때 페이스 북에서 장면 뒤에 가져 오는 URL입니다. – lightyrs

0

는 다음과 같은 작업을 수행 할 수 있습니다

편집 : 같은 URL에 해결이 user.mywebsite.com 하위 도메인을 모두 확인합니다. 이 URL에서

  1. *.facebook.com에서 발생한 모든 트래픽을 처리하는 포괄적 인 경로를 만듭니다.
  2. params[:signed_request]을 디코딩하는 컨트롤러 동작에 대한 경로.
  3. 디코딩 된 서명 된 요청은 요청을 담당하는 페이지의 페이스 북 ID를 산출합니다.
  4. 해당 페이지의 관리자 인 사용자를 시스템에서 가져옵니다.
  5. 사용자의 하위 도메인을 가져옵니다.
  6. 하위 도메인으로 리디렉션합니다.

현재이 방법이이 문제를 해결하는 가장 일반적인 방법이지만 앞으로는 페이 스북에서 페이지를 기반으로 한 동적 탭 URL을 가질 수있는 솔루션을보고 싶습니다. 사용자 및 추천 컨텍스트.

+0

일반적으로 브라우저는 DNS에 바인딩 된 URL (Uniform Resource Locator)을 통해 웹 서버에 연결합니다. – lightyrs

+0

나는 이것이 일단 수신되면 RoR 웹 응용 프로그램이 http 요청을 받아들이도록하는 방법에 대한 좋은 설명이지만 user1.xyz.com URL은 DNS 라우팅없이 RoR 웹 서버에 도착하지 않는다고 말하고 있습니다. 거기에. –

관련 문제