우선 내가이 질문에 대한 답변을 꽤 오래 동안 검색했다고 말하면서 시작하겠습니다 ...
내 컴퓨터에서 로컬로 개발중인 응용 프로그램과 함께 작동하도록 Facebook OAuth를 설정하려고합니다. 내가 페이스 북의 권한으로 localhost
을 사용하여 다른 도메인 이름 (여전히 내 컴퓨터의 로컬)으로 옮겨 졌을 때 모든 것이 완벽하게 작동했습니다. 이제 다음 오류가 발생합니다.
URL을로드 할 수 없음 :이 URL의 도메인은 앱의 도메인에 포함되어 있지 않습니다. 이 URL을로드하려면 앱 설정의 앱 도메인 입력란에 앱의 모든 도메인과 하위 도메인을 추가하십시오.
내 호스트 파일에 127.0.0.1 photovote.dev
이 포함되어 있습니다 (완벽 함).
내 앱에서 내 리디렉션 (Socialite 사용)은 http://photovote.dev/auth/facebook/callback
입니다.
내 Facebook App Settings에서 ...
photovote.dev
입니다.http://photovote.dev/
입니다.http://photovote.dev/auth/facebook/callback
입니다.오류 메시지가 표시 될 때의 URL은 ..
문제가 무엇인지 모르겠다.
Facebook에서 앱을 만들 때 잘못된 세부 정보를 입력 한 경우 일반적으로 발생합니다. 또는 기존 앱의 URL을 변경 했습니까?
이 페이지에서 APP의 설정을 다시 확인해 주시겠습니까?
https://developers.facebook.com/apps
올바른 앱을 선택하고 수정 버튼을 클릭하십시오.
URL 및 경로가 올바르게 입력되어 있는지 확인하고 Ultimate Facebook 플러그인을 설치 한 사이트를 가리 킵니다.
누군가가이 문제를 겪고 이러한 설정을 찾고있는 경우 (예 : 내가 그런 것처럼)
너는해야 해.
추가 정보 : Facebook 로그인의 설정 페이지에서 http://localhost:3000
와 같은 콜백 URL을 Valid OAuth redirect URIs
필드에 추가하십시오.
나는 똑같은 문제가 있었다. OAuth 리디렉션 URI를 getAccessToken 함수 호출에 대한 인수로 추가하여 해결했습니다.
$redirectLoginHelper->getAccessToken("https://www.example.com/myfacebookcallback")
해당 함수에 인수가 전송되지 않으면 SDK가 자체적으로 리디렉션 URI를 생성하지만이 경우 리디렉션 URI는 작동하지 않지만 제 경우에는 작동하지 않습니다.
희망이 사람을 도움이됩니다.
앱이 공개되어 있는지 확인하십시오. + 제품 추가를 클릭하십시오. 이제 제품으로 이동 => Facebook 로그인 이제 다음을 수행하십시오.
유효한 OAuth 리디렉션 URI : example.com/
콜백 인증 해제 : https://example.com/facebookapp
나는 같은 문제가 있었는데, 그것은 잘못된 client_id/Facebook App ID에서 나왔습니다.
Facebook 앱을 "공개"또는 "온라인"으로 전환 했습니까? 그렇게하면 Facebook에서 새 앱 ID로 새 앱을 만듭니다.
Url의 "client_id"매개 변수 값을 Facebook 대시 보드의 "client_id"매개 변수 값과 비교할 수 있습니다.
내가 고쳐 쓰는 방법 : Valid OAuth Redirect URIs 텍스트 상자로 가서 exact URL, 도메인 만 설정하지 말 것 :
before : https://my-website.com
after : https://my-website.com/facebookoauth/facebooklogin
(URL은 귀하의 경우 다를 수 있습니다, 브라우저의 주소 표시 줄에서 확인).
이는 예 위치에서 잠긴 리디렉션 URI에 엄격 모드 사용 설정으로 인해 발생했습니다.
여기를 클릭하십시오. 코드 프로젝트 ! 그것의 코드 프로젝트 예제. 그게 나에게 일하고있어.
대부분의 경우 FB 대시 보드의 제품 섹션에 올바른 유효한 OAuth 리디렉션 URL 을 삽입하지 않은 상태에서 발생합니다.
01. 아래 그림으로 앱의 기본 설정이 올바른지 확인
02. 제품 추가 여부 확인
그렇지 않으면 아래에 표시된대로 + 사인을 클릭하여 제품에 로그인을 쉽게 추가 할 수 있습니다.
03. 유효한 OAuth 리디렉션 URL 을 제공했는지 확인
그것은 로그인 후해야 할 일을 의미합니다 .URL을 콜백하는 것 외에는 아닙니다. 아래 그림에서 몇 개의 리디렉션 URL을 추가했습니다.
URL을로드 할 수 없음 :이 URL의 도메인은 앱의 도메인에 포함되어 있지 않습니다. 이 URL을로드하려면 앱 설정의 앱 도메인 입력란에 앱의 모든 도메인과 하위 도메인을 추가하십시오.
나는 오늘이 문제를 겪었고, 나는 페이스 북 문서와 SDK가 다른 개발자들에게 무례하고 무례하다고 말하고있다.
( "웹"플랫폼을 추가하는 경우 3 가지) 많은 정보가없는 두 개의 다른 위치에 "앱 도메인"을 갖는 것 이외에 app products/facebook login/settings 로 이동하여 리디렉션 URL을 유효한 OAuth 리디렉션 URI
오류 oauth 설정에 대해 아무것도 말합니다.
나는 똑같은 문제가 있었다.
응용 프로그램 설정 https://developers.facebook.com/apps 에서 로컬 주소 http : //localhost/Facebook%20Login%20Test.html _ Site URL
의 링크를 추가했습니다. _.
지금은 잘 작동합니다. :) 이것이 유용했으면 좋겠다;)
2017-10 현재.
내 문제를 해결 한 솔루션.
현재 FB는 이러한 놀람을 표현합니다.
... 앱의 클라이언트 OAuth 설정. 클라이언트 및 웹 OAuth 로그인이 켜져 있는지 확인하십시오 ...
조정할 설정은 https://developers.facebook.com/apps/[your_app_itentifier]/fb-login/ 에 있습니다.
후행 슬래시가 중요합니다. 앱 코드와 FB 관리자 설정에서 일치해야합니다. 그래서 이것은 당신의 코드 어딘가에있는 설정입니다 (dev 어플리케이션을위한 도메인 네임을 얻는 방법은 아래를보십시오) :
{
callbackURL: `http://my_local_app.com:3000/callback/`, // trailing slash
}
그리고 여기
로컬 Windows 컴퓨터에서 응용 프로그램의 도메인 이름을 가져 오려면 Host
파일을 편집하십시오. 사용자 정의 이름은 localhost:8080
, 0.0.0.0:30303
, 127.0.0.0:8000
등을 제거하기에 좋습니다. FB와 같은 일부 타사 서비스가 때때로 127.0.0.0
이름을 사용할 수 없기 때문입니다.
Windows 10에서 hosts
파일은 다음과 같습니다.
C:\Windows\System32\drivers\etc\hosts
초기 파일을 백업하고 다른 이름으로 복사본을 만듭니다 (기본 Windows CMD에서는 작동하지 않습니다. Git for Windows , 많은 Unix 명령이 있습니다)
$ cp hosts hosts.bak
hosts
에 이것을 추가하십시오
127.0.0.1 myfbapp.com # you can access it in a browser http://myfbapp.com:3000
127.0.0.1 www.myotherapp.io # In a browser http://www.myotherapp.io:2020
포트 부분을 제거하려면 :3000
NGINX를 설정하십시오.
사용하고 있던 SDK 버전을 업데이트하기 전까지는 실제로 아무 것도 작동하지 않았습니다. 나는 5.0으로 시작했다. 5.4.0조차도 작동하지 않습니다. 5.6.2로 업데이트했을 때, 관련 changelogs에 아무 것도 없었음에도 불구하고 완벽하게 작동했습니다!
이 기능이 다른 사람에게 도움이되는 경우, "Valid OAuth Redirect URIs"가 필수 항목으로 바뀌면 이전 사이트에서이 작업이 시작되었습니다. 사이트에서 여전히 V4 PHP SDK를 사용하고 있었고 V5 SDK로 업그레이드하여 문제가 해결되었습니다.
앱 도메인 섹션에서 앱 도메인을 작성하고 있지만 로그인 도메인, 즉 사용자에게 로그인하도록 요청한 html 페이지의 이름도 추가해야합니다. 필자의 경우 localhost에서 로그인 경로를 테스트하고 있었고 localhost/login이었습니다. 앱 도메인 섹션에 http://localhost.com 을 입력하면이 오류가 발생합니다. 그러나 http : //localhost/login.com 을 추가하면 오류가 수정되었습니다. 또한 SDK의 최신 버전에서는 앱 설정이 변경되어 OAuth 리디렉션 경로에 대한 옵션이 없습니다. OAuth 토큰을받은 후 서버 측에서 직접 리디렉션 경로를 지정해야합니다.
나는 같은 문제를 가지고 있었다. issu는 버전 PHP SDK 5.6.2에 있고 수정은 다음 파일을 편집하고 있었다 :
facebook\src\Facebook\Helpers\FacebookRedirectLoginHelper.php
이 줄 바꾸기
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code']);
에서 - /
$redirectUrl = FacebookUrlManipulator::removeParamsFromUrl($redirectUrl,['state','code','enforce_https']);
이것은 나를 위해 일했다 :
이해해야 할 주요 사항은 다음과 같습니다. Facebook은 항상 "WWW"도메인을 확인합니다. 그래서 www.your_domain.dev 가 브라우저에서 먼저 작동하는지 확인하십시오.
로컬 서버에 가상 호스트가 여러 개 있으면 다른 가상 호스트가 " www.your_domain.dev "를 무시할 수 있습니다. 그래서 확인해주세요. 아파치는 도메인의 첫 번째 정의 (또는이 용어들에있는 어떤 것 - 나는 이것에 대한 전문가가 아니지만 실수로 배웠다)를 고를 것이다. 이 가상 호스트 재정의를위한 빠른 수정은 "httpd-vhosts.conf"파일 맨 위에 "www.your_domain.dev 가상 호스트 정의"를 넣는 것입니다.
" /Apache/conf/https-vhosts.conf "로 이동하여 파일 맨 위에 넣으십시오.
<VirtualHost *:80>
<Directory "C:/your_app_folder_path/">
Options FollowSymLinks Indexes
AllowOverride All
Order deny,allow
allow from All
</Directory>
ServerName your_domain.dev
ServerAlias your_domain.dev
DocumentRoot "C:/your_app_folder_path/"
</VirtualHost>
###### FOR SSL #####
<VirtualHost *:443>
DocumentRoot "C:/your_app_folder_path/"
ServerName your_domain.dev
ServerAlias www.your_domain.dev
SSLEngine on
SSLCertificateFile "conf/ssl.crt/server.crt"
SSLCertificateKeyFile "conf/ssl.key/server.key"
<Directory "C:/your_app_folder_path/">
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
다음 : Windows 시스템을 사용하는 경우 두 줄을 추가하여 "C :\Windows\System32\drivers\etc"의 "hosts"파일을 편집하십시오.
127.0.0.1 your_domain.dev
127.0.0.1 www.your_domain.dev
다음 : 아파치 서버를 재시동하면 모든 것이 제대로 작동합니다.
이것이 당신을 도울 것이고 당신의 시간을 절약하기를 바랍니다. 나는 거의 하루 종일 웹을 검색하는 것을 낭비했고, 내 머리카락을 뽑아 내고 이것을 발견 할 때까지 도움이되는 것을 찾을 수 없었다.
프로덕션 환경에서 이와 동일한 Facebook 오류가 발생했습니다. 그 이유는 페이스 북 (로컬, 프로덕션)에 등록 된 2 개의 앱이 있었지만 로컬 앱 ID를 소스 코드에 하드 코드하여 배포하기 전에 프로덕션 앱 ID로 전환하는 것을 잊어 버렸기 때문입니다.
베스트 프랙티스는 소스 코드에 앱 ID를 하드 코딩해서는 안되지 만, 그렇게했다면 내가 실수 한 것처럼 다양한 Facebook 앱 ID를 불일치하지 마십시오.
내 로컬 서버 사용.
http://localhost/my-site
를 URL로 추가하기 만하면됩니다.
https://developers.facebook.com/apps/YOUR-APP-ID/fb-login/
나를 위해 일했다.
첫 번째 단계 : all https://example.in / SSL 인증서 URL을 사용하십시오. http://example.in
두 번째 단계 : faceboook 응용 프로그램 설정 -> 기본 설정 -> 도메인 또는 하위 도메인 추가
세 번째 단계 : faceboook 애플리케이션 로그인 설정 -> 유효한 OAuth 리디렉션 URI-> 로그인 후 모든 리디렉션 URL 추가
네 번째 단계 : faceboook 응용 프로그램 설정 -> 사전 설정 -> 도메인 관리자 -> 도메인 이름 추가
이 모든 단계를 수행 한 다음 애플리케이션 ID, 애플리케이션 버전, 설정을위한 앱 비밀번호를 사용하십시오.
FB가 로그인 절차를 강화함에 따라 문제와 대답이 계속 변경됩니다. 현재이 URL의 도메인은 앱의 도메인에 포함되어 있지 않습니다.이 URL을로드하려면 앱 설정의 앱 도메인 입력란에 앱의 모든 도메인과 하위 도메인을 추가하십시오. "
대답은 다음과 같습니다. 이제 FB는 전체 리디렉션 URI를 원합니다. 그래서 저에게있어서 그것은 단지 https://www.example.com 이었던 곳이었습니다. 이제는 https://www.example.com/auth/facebook/callback 을 원합니다. 이것은 "유효한 OAuth 리디렉션 URI"필드 (개발자/Facebook 로그인 -> 설정)
Facebook 로그인 -> 설정 -> 유효한 OAuth 리디렉션 URI -> 리디렉션 URL의 도메인을 삽입하십시오. 'https'또는 http를 추가해야합니다. 예 : 리디렉션 URL이https://xxx.xxx.com/path/callback.do인 경우https://xxx.xxx 만 입력하면됩니다. .com// 괜찮습니다.