안녕하세요. 오전에 질문드렸었는데,
페이스북 앱을 하나 만들어서 사용하고 있는데요, 앱관리 edit App 메뉴에서 좌측하단 메뉴에 보면 Use Graph API Explorer 라는 링크가 있더라구요,
부가기능에 제가 만든 앱이름과 Graph API Explorer 가 있어서
혹시나해서 Graph API Explorer 의 access token을 새로 받아 게시글을 등록해보니 제 계정뿐아니라 다른 계정 사용자들도 게시글이 보이던데
Graph API Explorer 액세스토큰을 얻으려면 다른 방법으로 개발을 해야하나요? 기존에는 app id 와, app secret 코드를 사용하잖아요?
Graph API Explorer에서도 생성되있는 id가 있던데, 이 id로 변경해봐도 소용은 없더라구요..
api 설명을 봐도 모르겠고 해서 도움 요청드립니다.
====index.jsp
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>twitter api</title>
</head>
<body>
fb api<br/>
<%
String appID = "13548216848735432748";
String callbackUrl = "http://" + request.getServerName() + "/facebook/callback.jsp";
String oauthUrl = "https://www.facebook.com/dialog/oauth?" +
"client_id="+ appID + "&redirect_uri=" + URLEncoder.encode(callbackUrl, "UTF-8")+
"&scope=publish_stream, offline_access";
response.sendRedirect(oauthUrl);
%>
</body>
</html>
==== callback.jsp
<%
String code = request.getParameter("code");
String appID = "13548216848735432748";
String appSecret = "1db1dasdfeseree4a7e966b16ce4";
String callbackUrl = "http://" + request.getServerName() + "/facebook/callback.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()));
String accessToken = null;
accessToken = in.readLine();
accessToken = accessToken.substring(accessToken.indexOf("=")+1, accessToken.indexOf("&"));
in.close();
%>
=======insert.jsp
FacebookClient facebookClient = new DefaultFacebookClient(accessToken);
FacebookType publishMessageResponse = facebookClient.publish("me/feed", FacebookType.class, Parameter.with("message", "게시글 내용"));
Graph API Explorer는 또하나의 페이스북 API를 사용하는 앱이라고 생각하시면 간단합니다.
글이 올라갔다면 더이상 도큐먼트를 찾아보셔도 원인을 찾기는 힘들꺼에요.. 오류없이 정상적으로 동작했기 때문이죠
이전 게시물에도 남겼지만 분명 공개 옵션 때문일겁니다.
계정설정 -> 앱 메뉴에서 만드신 앱의 공개설정이 어떻게 되어 있나요?
전부 전체공개로 되어있습니다.
차이점은 앱 수정하기 항목에 들어가보면
회원님을 대신해 올리는 게시물 란에
Graph API Explorer는
이 앱은 회원님을 대신해 activities you tracked, songs you saved 등을 게시할 수 있습니다.
제가만든 앱이름계정으로는
이 앱은 회원님을 대신해 상태 업데이트, 사진 등과 같은 게시물을 올릴 수 있습니다.
부분인데 .. 이부분에서의 차이땜에 그러는걸까요?