페이스북 API 사용중 질문 드립니다..ㅜㅜ
루나
기본소스.
p%@ page language=java contentType=text/html; charset=UTF-8
pageEncoding=UTF-8%
%@ page import = com.restfb.exception.FacebookOAuthException %
%@ page import = com.restfb.Parameter %
%@ page import = com.restfb.types.FacebookType %
%@ page import = com.restfb.DefaultFacebookClient %
%@ page import = java.util.List %
%@ page import = com.restfb.types.User %
%
String accesstoken = CAACxGO06MiUBAEFUsjdbfwNdkXoanjSgcAuXlIZB6Wy4TDW5meN3QHAZANoRPRIfeoIHgmy5JF7O2Gma0ndJWDiZCFZC4C8rutLlgwUA45XoKKi0dMCdLj1OiYEbCdKo07oRbpWQ2aBXc0ZAXGqFqBKrJ5B1YZBPYZD&expires=5177265;
DefaultFacebookClient fbClient = new DefaultFacebookClient(accesstoken);
ListUser friends = null;
try{
friends = fbClient.fetchConnection(me/friends, User.class).getData();
}catch(FacebookOAuthException e){
e.printStackTrace();
}
%
!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd
html
head
meta http-equiv=Content-Type content=text/html; charset=EUC-KR
titleInsert title here/title
/head
body
친구의 수: %=friends.size() %
/body
/html
/p
-------------------------------------------------에러---------------------------------------------
com.restfb.exception.FacebookOAuthException: Received Facebook error response of type OAuthException: Malformed access token CAACxGO06MiUBAEFUsjdbfwNdkXoanjSgcAuXlIZB6Wy4TDW5meN3QHAZANoRPRIfeoIHgmy5JF7O2Gma0ndJWDiZCFZC4C8rutLlgwUA45XoKKi0dMCdLj1OiYEbCdKo07oRbpWQ2aBXc0ZAXGqFqBKrJ5B1YZBPYZD&expires=5177265
at com.restfb.DefaultFacebookClient$DefaultGraphFacebookExceptionMapper.exceptionForTypeAndMessage(DefaultFacebookClient.java:766)
at com.restfb.DefaultFacebookClient.throwFacebookResponseStatusExceptionIfNecessary(DefaultFacebookClient.java:688)
at com.restfb.DefaultFacebookClient.makeRequestAndProcessResponse(DefaultFacebookClient.java:630)
at com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:592)
at com.restfb.DefaultFacebookClient.makeRequest(DefaultFacebookClient.java:556)
at com.restfb.DefaultFacebookClient.fetchConnection(DefaultFacebookClient.java:219)
at org.apache.jsp.face3_jsp._jspService(face3_jsp.java:73)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
2013. 5. 22 오후 6:24:05 org.apache.catalina.core.StandardWrapperValve invoke
심각: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.face3_jsp._jspService(face3_jsp.java:87)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:388)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:606)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Thread.java:662)
--------------------------------------------------------------------------------------------------대충 해석을 해보았습니다. 위에 검은색 글씨의 에러부분은 트라이 캐치에서 찍어낸 에러입니다.
해석을 해보면. 받아온 accessToken이 잘못 되었다는 뜻 같습니다..(위,보라색부분)
그래서 다시 로그인 인증을 통해 accessToken을 다시 받고 새로운 토큰을 넣고 돌려보았는데도
계속 저 에러가 나더군요.. 그렇기에 토큰이 잘못되어 아래 널포인트를 야기 시키는것같습니다..
로그인 인증으로 인해 얻은 토큰의 사용법이 잘못되었을까요?
왜 저렇게 에러가 날까요..??-----------------------------------------------------------------------------------------------
%@ page language = java contentType =text/html; charset=UTF-8
pageEncoding=UTF-8 %
%@ page import = java.net.* %
%
String appID = 194720617345573;
String callbackUrl = http://192.168.1.119:9090/face/face2.jsp;
String oauthUrl = https://www.facebook.com/dialog/oauth? +
client_id=+appID+&redirect_uri=+URLEncoder.encode(callbackUrl, UTF-8)+
&scope=user_about_me, publish_stream, read_friendlists, offline_access;;
response.sendRedirect(oauthUrl);
%
-------------------------------------------------------------------------------------------------
%@ page language=java contentType=text/html; charset=UTF-8
pageEncoding=UTF-8%
%@ page import = java.net.*, java.io.* %
%
String code = request.getParameter(code);
String appID = 194720617345573;
String appSecret = 692ea36ea932c472383c5746891b27b1;
String callbackUrl = http://192.168.1.119:9090/face/face2.jsp;
String access_token_url = https://graph.facebook.com/oauth/access_token?
+client_id=+appID
+&redirect_uri=+URLEncoder.encode(callbackUrl, UTF-8)
+&client_secret=+appSecret+&code=+code;
URL yahoo = new URL(access_token_url);
URLConnection yc = yahoo.openConnection();
BufferedReader in = new BufferedReader(
new InputStreamReader(
yc.getInputStream()));
/* HttpURLConnection httpConn = (HttpURLConnection)yc;
InputStream is;
if(httpConn.getResponseCode() = 400){
is = httpConn.getErrorStream();
}else{
is = httpConn.getErrorStream();
} */
String inputLine = null;
out.println(br/access_token respons=======================================);
while((inputLine = in.readLine()) != null)
out.println(inputLine);
out.println(br/access_token respons=======================================);
in.close();
%
br /code:%=code % br /
!DOCTYPE html PUBLIC -//W3C//DTD HTML 4.01 Transitional//EN http://www.w3.org/TR/html4/loose.dtd
html
head
meta http-equiv=Content-Type content=text/html; charset=EUC-KR
titleInsert title here/title
/head
body
/body
/html
--------------------------------------------------위에 두개가 토큰을 받아오는.. jsp입니당..
-
봄바람
아하. 그런가요? 감사합니당. . .찾아볼께요 ㅎ
-
ComeOn
엇 저 소스는 처음에 없었는데 어디서 생긴거지
-
맛조이
페북이랑 통신을 못하죠. callback 이 private network 니까요. ^^
-
꺆잉
메세지상은 페북에 가져오기전에 로그인 단에 문제같으니.. 그 사용하기 위한 페북 가이드나 찾아보시는게 좋을꺼 같네요.
-
타키
네 로그인 처리를 거쳐서.. 받아왔거든욤...
-
당나귀
com.restfb.exception.FacebookOAuthException: Received Facebook error response of type OAuthException OAuth는 페북에서 로그인 처리 친구인데..
-
모람
메시지가 토큰 쪽이라는 말씀이 무슨뜻인지 모르겟어요 ㅜㅜ
근데 토큰은 제가 인터넷 찾아보면서 따온 토큰은 맞는건댕..
인터넷에 이토큰을 사용하면 된다고 나와있어서요 ;ㅇ; -
불꾼
메세지가 토큰 쪽인데..
-
회전력
예 저기 있는 토큰은 제가 appID와 appsecret등을 얻어서 로그인 인증을 거쳐서
페북에서 저한테 준 토큰입니다..
그 토큰을 사용중에 있구요.. -
아란
토큰은 내가 따서 입히는게 아니라 페북에서 따주는걸 주워담아야하실텐데요? 로그인시 토큰으로 session이랑 체크할텐데