<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html >
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko" xmlns:fb="http://www.facebook.com/2008/fbml">
<head>
<title>facebook login</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="content-language" content="kr" />
<meta name="author" content="JH" />
<meta name="description" content="facebook login" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.6.2/jquery.min.js"></script>
<script type="text/javascript" src="//connect.facebook.net/ko_KR/all.js"></script>
<script type="text/javascript" charset="utf-8">
//페이스북 설정파일
window.fbAsyncInit = function() {
FB.init({
appId : '194720617345573',
status : true, // check login status
cookie : true, // enable cookies to allow the server to access the session
xfbml : true, // parse XFBML
oauth : true // enable OAuth 2.0 <!-- API가 번전업이 됬다는 소리입니다. 꼭 넣어 주세요 -->
});
};
(function(d){
var js, id = 'facebook-jssdk' if (d.getElementById(id)) {return;}
js = d.createElement('script'); js.id = id; js.async = true;
js.src = "//connect.facebook.net/ko_KR/all.js";
d.getElementsByTagName('head')[0].appendChild(js);
}(document));
function facebookLogin () {
FB.login(function(response) {
if (response.authResponse) {
var uid = response.authResponse.userID;
var accessToken = response.authResponse.accessToken;
FB.api({
method: 'fql.query',
query: 'SELECT uid, name, username, email FROM user WHERE uid=' + uid
},
function(response) {
var user = response[0];
alert(user.name);
}
);
} else {
alert("Facebook 통신이 원활하지 않습니다. \n잠시후 다시 이용해주세요.");
}
},
{ scope: "read_stream" }
);
}
</script>
</head>
<body>
<div id="fb-root"></div>
<a href="nojavascript...facebookLogin();">페이스북 로그인 정보가져오기</a>
</body>
</html>
--------------------------------------------------FQL을 사용중입니다.. 그런데 돌리면 창이 뜬 후. 로그인을 합니다. 로그인을하면...
입력하신 URL은 해당 앱에서 허용되지 않습니다.:
One or more of the given URLs is not allowed by the App's settings. It must match the Website URL or Canvas URL, or the domain must be a subdomain of one of the App's domains.
이러한 에러가 뜨더군요. ㅠ 외국 사이트에 올라와있는 답변을 참조해보면,
API ID 및 URL 주소가 잘못되엇다는 등에 말이 더라구요..
ID는 정확하구요.. URL주소 같은 경우에는.. 어제 제가 돌리던 소스 그대로 설정 해놓은거라 건드린게 없어요..
기존에 토큰을 얻는 로그인인증에도 썻던 그 URL주소입니다.. 그런데 지금 올린 jsp 에서 어떤게 문제인지 모르겟네요...
한가지 더 질문은... 페이스북 홈페이지에서 URL설정하는 그 URL은 callbackURL과 다른 애인가요?
... 아무리 찾아보ㅕㄴ서 공부해도 ..와닿질 안습니다.ㅠㅠㅠㅠㅠ
답변 감사드립니다.
전번에도 봇 님처럼 말씀해주신 분이 계셨는데.
역시 그문제 인거 같네요..
잘알겠습니다. 토큰값은 정상적으로 가져옵니다 ㅎ
192.168.1.119 는 공유기 내부 ip로 보이고요 그렇다면, 외부에서는 접속이 안되겠죠
그리고 위 코드는 사용자 정보를 가져오는 코드로 보입니다. 토큰값은 정삭적으로 가져오나요?
ip주소이를 사용한 것이 문제가 되는듯 합니다.
쿠키등 인증문제도 발생할 가능성이 있다고 봅니다.
사용가능한 도메인이 있으면 도메인 주소로 테스트를 해보면 어떨까 합니다.
답변 이해 하였습니다..
저는 설정 URL 이 http://192.168.1.119:9090/face/face2.jsp 이렇게됩니ㄷㅏ.
callbackURL 역시 http://192.168.1.119:9090/face/face2.jsp 입니다.
그래서 '봇'님 말씀 대로 URL 설정을 http://192.168.1.119:9090/ 까지주었씁니당...
그런데 역시 똑같은 메세지가 뜹니다.ㅜㅜ
이상한건.. 어제 제가 테스트했던 그 소스들( 토큰 받아오기. 친구리스트) 불러오는 것은 다되는대
지금 하고있는 이 위에 소스및. 로그인 사용자 정보를 받아오는 등의 소스들은 로그인을 하고나면 바로 이 위에 메시지를 호출합니다..
페이스북에서 URL을 받을수없습니다.. 라는 식의 메시지요 ㅜㅜ
아.. 얘들만 이러니. 가슴아푸네요.. 타임라인쪽 불러오는것을 FQL로 할수있다는것을 찾아서 좋앗는대..
산넘고산너머산이네욤 -,.
callbackURL 이랑 설정 url이랑은 다를수도 있고 같을수도 있습니다.
설정 url이 어떤건지 알면 더 쉬운 답변이 되겠습니다.
예를들어 설정에 주소를 아래와 같이 입력했습니다.
http://domain.com/
그러면
http://domain.com/callback.html 또는 http://domain.com/sub/callback.html
이런것들도 허용이 됩니다.
http://domain.com
이렇게 입력하셨으면
http://domain.com/callback.html 또는 http://domain.com/sub/callback.html
이런 페이지에서 요청을 하면 페이스북에서 거부 할 수 있습니다.
그래서 캔버스앱 같은경우 필수로 마지막에 '/' 를 추가해야 합니다. 즉 파일이 아닌 디렉토리로 주소가 끝나도록 요구하고 있습니다.
보안상 권한을 도메인과 디렉토리 레벨까지 체크하는 특성때문입니다.
도메인의 모든 디렉토리에서 앱을 사용하는 구조라면, http://domain.com/ 이렇게 입력해주세요.