로컬로 Facebook Connect를 테스트하는 방법


194

ASP .NET 및 Facebook Connect API를 사용합니다. 그러나 응용 프로그램을 실행하고 연결 버튼을 누르면 테스트 로컬 서버가 아닌 웹 사이트 ( http : // localhost : xxxx / test.aspx )로 돌아갑니다 . 따라서 Facebook을 로컬로 테스트하는 방법은 무엇입니까? 콜백 URL)?


4
답은 다음과 같습니다. forum.developers.facebook.com/viewtopic.php?pid=116136 도메인이 localHost로 오게하려면 'C : \ WINDOWS \ system32 \ drivers \ etc \ hosts'파일을 편집해야합니다.
Haytham

101
이 시스템은 페이스 북에서 제대로 구현되지 않은 것으로 보입니다. 라이브 서버가 아닌 다른 기능을 테스트하려는 사람은 없었습니다. 여기에 제공된 두 가지 솔루션-프로덕션 서버를 스푸핑하기 위해 로컬 호스트 파일을 편집하고 로컬 호스트로 리디렉션하고 Facebook의 라이브 프로덕션 URL을 일시적으로 localhost로 변경하는 것은 Facebook의 디자인에서 상당히 나쁜 디자인입니다. Facebook은 시스템에 일종의 테스트 용량을 추가해야합니다.
Paul Legato

2
해결 방법은 라이브, QA 및 개발자의 3 가지 앱을 갖는 것입니다. 따라서 기본 앱이 apps.facebook.com/ohnice/ QA이고 dev가 될 수있는 경우 apps.facebook.com/ohnice_qa_sd/는 apps.facebook.com/ohnice_dev_fg/ 예일 수 있습니다. 깔끔하지 않습니다.
tgkprog

1
@PaulLegato 이제 끝났습니다 (몇 년 후 ...). 내 솔루션 또는 테스트 기능을 사용하는 솔루션 중 하나를 참조하십시오.
Erdal G.

답변:


236

당신이 알아낼 때 충분히 간단합니다.

/etc/hosts(유닉스) 또는을 엽니 다 C:\WINDOWS\system32\drivers\etc\hosts.

도메인이 foo.com 인 경우 다음 줄을 추가하십시오.

127.0.0.1    local.foo.com

테스트 할 때 local.foo.com브라우저에서 열면 작동합니다.


4
MAC에서 호스트 파일을 편집하려면 터미널에서 "sudo pico / private / etc / hosts"를 실행하고 편집하고 "ctrl X"를 눌러 저장하십시오
Christoffer

@ Christoffer : / private / etc는 / etc에 대한 심볼릭 링크이므로 / etc / hosts와 / private / etc / hosts는 동일한 파일이라고 생각합니다.
freeall

1
당신은 옳습니다 ...하지만 우리 중 일부는 숟가락으로 먹이를 주어야하고 "open / etc / hosts"라고 말하면 충분하지 않습니다.) FB는 여전히이 솔루션으로 로컬에서 실패하고 있습니다. 나는 페이스 북 JS를 사용하지 않고있다
Christoffer

5
이것은 최근까지 나를 위해 일했지만 지금 connection refused은 페이스 북 쪽의 변경으로 인해 로그인하려고 할 때 예외를 받고 있습니다. 해결 방법에 대한 아이디어는 대단히 감사합니다.
onurmatik

1
로컬로 실행되는 Rails 앱에 액세스하기 위해이 작업을 수행하는 경우 Rails 앱은 일반적으로 해당 포트에서 실행되므로 브라우저에서 local.foo.com : 3000`을 방문해야 할 수도 있습니다.
David Tuite

102

www.facebook.com/developers/ 에서 앱을 편집 하고 "사이트 URL"을 "http : // localhost / myapppath"로 설정하십시오.

완료되면 다시 변경하십시오.


19
Facebook은 서버에 "연결"되지 않습니다. 그들의 JS는 않습니다. 그리고 JS는 브라우저의 컨텍스트에서 실행됩니다. "localhost"가 가리키는 위치를 알고 있습니다.
Alex

" localsite "를 추가 할 수 없습니다 . 거기에 점이 있는지 확인해야했습니다. " local.site "
Pete

일부 FB 기능은이 기능으로 작동하지 않습니다. 예를 들어, 업적을 FB 서버에 저장하십시오. 그것은 HTTPS를 원하므로 내 로컬 호스트 트릭이 작동하지 않습니다 :(
Kostadin

2
응용 프로그램 양식 유효성 검사가 URL에 localhost를 사용하도록 요구한다는 점에 주목 그것의 가치, 예를 들면 http://localhost/myapp보다는http://myapp
그레이엄

1
: 다른 포트 사용이 패턴을 사용하는 경우 로컬 호스트 : XXXX ), 예를 들어 : 8080 : 로컬 호스트
m0z4rt

77

https://developers.facebook.com/apps 에서 테스트 응용 프로그램 (개발 환경 전용)을 만들고 localhost : [port] 설정으로 Website with Facebook Login속성을 설정하는 것이 좋습니다. 이 옵션은 호스트를 변경할 필요없이 잘 작동합니다. 시작한 후에 는 appId 를 프로덕션 앱으로 다시 변경 해야합니다.


편집 -최신 fb 버전에서는 settings탭 아래에 있습니다. 여기에 이미지 설명을 입력하십시오


2
또는 개발, 스테이징 및 라이브에 대해 별도의 구성 파일을 사용하십시오.
Chris Barry

1
더 이상 "Facebook 로그인이있는 웹 사이트"를 찾을 수 없습니다.
yehe

5
"+ 플랫폼 추가"큰 회색 가로 버튼을 클릭해야합니다. 당신은 "웹 사이트"
Luciano

75

Facebook에는 테스트 버전 기능이 추가되었습니다.

먼저 애플리케이션의 테스트 버전을 추가 하십시오. 테스트 앱 작성

테스트 앱 만들기

그런 다음 Website 아래 에서 사이트 URL 을 " http : // localhost "로 변경하고 변경 사항 저장을 누르 십시오.

여기에 이미지 설명을 입력하십시오

전부입니다. 그러나 주의하십시오 : App IDApp Secret 키는 응용 프로그램 및 테스트 버전에 따라 다릅니다!


설정 패널에서 앱 도메인이란 무엇입니까? 내가 페이스 북의 로그인으로 이온 응용 프로그램을 개발하고
치라을 thaker

1
그것은 생산 응용 프로그램을 호스팅됩니다 도메인은 @Chiragthaker
Erdal은 G.

3
hosts테스트 서버에서 HTTPS를 사용할 필요가 없기 때문에 파일을 편집하는 것보다 내 경우에는 훨씬 더 나은 대답입니다 .
Petr Dlouhý

39

어려운 일을 할 필요가 없습니다!

페이스 북 → 설정 → 기본 :
쓰기 " 로컬 호스트 " 에서 " 응용 프로그램 도메인" 필드에 다음을 클릭합니다 " 플랫폼을 추가 + " 선택 " 웹 사이트 " .

그런 다음 " Site Url " 필드에 localhost url
(예 :)을 작성하십시오http://localhost:1337/something .

이를 통해 페이스 북 플러그인을 로컬에서 테스트 할 수 있습니다.


1
file : /// android_assets / www 경로의 파일에 대한 해결 방법이 있습니까? 페이스 북은 사이트 URL에 대한 경로를 허용하지 않습니다
Vignesh Subramanian

이제 https 여야합니다
Simon_Weaver

@Simon_Weaver이 정보는 어디서 얻었습니까? 어딘가에 기록되어 있습니까?
kolistivra


@Simon_Weaver에서 보낸 링크 : "앱은 여전히 ​​개발 모드에있는 동안에 만"localhost "주소와 함께 HTTP를 사용할 수 있습니다."
kolistivra

5

Facebook은 페이스 북 앱에서 localhost를 도메인으로 설정하는 기능을 임의로 비활성화합니다. 가장 쉬운 해결 방법은 로컬 호스트를 웹으로 터널링하는 것입니다. 이것은 http://progrium.com/localtunnel/을 사용 하거나 사용자 정의 URL을 사용하여 무료로 수행 할 수 있습니다 (페이스 북에서 URL을 매번 변경할 필요가 없기 때문에 더 쉽습니다) https://showoff.io


3
또 다른 터널 선택은 ngrok.com입니다
Mohamed Selim

3

다른 솔루션을 사용할 수 없었습니다 ... 나를 위해 일한 것은 LocalTunnel.net (https://github.com/danielrmz/localtunnel-net-client)을 설치 한 다음 Facebook에서 결과 URL을 사용하는 것입니다.


1

FB가 앱 개발자 페이지를 다시 변경하고 "서버 IP 화이트리스트"라는 기능을 추가 한 것 같습니다.

  1. 앱으로 이동하여 설정-> 고급 탭을 선택하십시오.
  2. 공개 IP 확보 (Google에서 "Whats My IP"인지 Google이 알려줍니다)
  3. 서버 IP 화이트리스트에 퍼블릭 IP를 추가하고 하단에서 변경 사항 저장을 클릭하십시오.

다른 위치의 여러 개발자가 사이트에서 작업하는 경우 어떻게됩니까? 우리는 VM (Vagrant)을 사용하므로 모든 개발자에게 IP가 동일합니다. 안타깝게도 페이스 북은 화이트리스트에서 로컬 IP를 사용할 수 없습니다. 작동하지 않습니다.
ProblemsOfSumit

내가 당신의 의견을 올바르게 읽고 있다면 이것은 문제가되지 않습니다. 각 개발자마다 동일하다고 말하는 공개 IP를 입력해야합니다 (동일하지 않다는 의미였습니까). IP가 다른 여러 사이트에 여러 개발자가있는 경우 VPN을 사용하여 1 개의 IP를 통해 모든 트래픽을 라우팅 할 수 있습니다.
sevensevens

아니요, 서로 다른 위치에있는 서로 다른 컴퓨터의 퍼블릭 IP는 동일하지 않으며 각 컴퓨터의 로컬 IP 만 동일합니다. (예 : localhost). 나는 아무것도 라우팅하고 싶지 않다. 지금은 FB 앱에서 localhost (예를 들어)를 사용하고 있습니다. 그러나 페이지가 게시되면 솔루션이 필요합니다. 페이스 북은 응용 프로그램 내에서 "테스트 응용 프로그램"을 만들 수 있습니다. 이것은 해결책 일지 모르지만 아직 시도하지 않았습니다. 편집 : 그것이 해결책 인 것 같습니다
ProblemsOfSumit

1

캔버스 페이지로 이동합니다. 브라우저에서 볼 수 있습니다. 주소 표시 줄 텍스트를 복사하십시오. 이제 페이스 북 앱으로 이동하여 설정 수정으로 이동

웹 사이트, 사이트 URL에 해당 주소 붙여 넣기

페이스 북 통합에서 캔버스 URL에 해당 주소를 다시 붙여 넣으십시오.

또한 캔버스 URL 또는 리디렉션 URL이 필요한 곳마다 동일한 코드를 사용하십시오.

도움이 되길 바랍니다 ..


-6

2 개의 앱을 만들고

에서 /initializers/env_variables.rb

if Rails.env == 'development'
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
else
    ENV['FB_APP_ID'] = "HERE"
    ENV["FB_SECRET"] = "HERE"
end
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.