프로그램/JAVASCRIPT

[javascript]facebook api 페이스북 로그인,새글 등록하기

주원대디 2014. 8. 14. 14:52

 

[javascript]facebook api 페이스북 로그인,새글 등록하기

 

사실 페이스북 공식 페이지에 가서 문서를 보고 하는것보다 블로그 찾으면서 직접 하는게 더 쉬웠고,

PHP SDK를 이용하려고 보니 공식페이지에서는 5.5이상만 지원해주는터라

PHP 5.2인 상태에서는

 

http://jaweb.tistory.com/468 님의 자료를 보고 테스트 해보았으나

새글 등록되는 속도가 너무 느렸다. (대략 5~10초걸렸음.ㅡㅡ)

 

그런데 자바스크립트로 하니 엄청 빠른체감을 느렸따

자바스크립트 페이스북 api를 사용하기 위해서는 먼저

개발자 등록부터 해야 한다!

 

https://developers.facebook.com/

 

Apps -> create a New App 으로 애플리케이션을 등록해 준다

이곳에서 어플리 케이션을 등록 하면 Application ID 와 API Key, Application Secret 가 발급 된다.

 

자바스크립트의 경우 앱ID 값만 있으면 된다.

 

https://developers.facebook.com/docs/#!/docs/javascript/reference

공식문서를 참고 하면 되겠지만 별로 도움은 안되고 여기저기 블로그 참고해서 만듦.

 

작업은 페이스공유 버튼 클릭시 로그인이 되어 있으면 바로 글이 등록 되고,

로그인이 안되어 있다면 로그인후 다시 페이스북 공유 버튼 클릭하면 공유 되도록 작업을 해놓았음.

 

<div id="fb-root"></div>
<script>
(function(d, s, id) {
  var js, fjs = d.getElementsByTagName(s)[0];
  if (d.getElementById(id)) return;
  js = d.createElement(s); js.id = id;
  js.src = "//connect.facebook.net/ko_KR/all.js#xfbml=1&appId=000000000000000";
  fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));

window.fbAsyncInit = function() {

FB.init({

appId      : '000000000000000', // 앱 ID
              
status     : true,          // 로그인 상태를 확인

cookie     : true,          // 쿠키허용

xfbml      : true           // parse XFBML

});


FB.Event.subscribe('auth.login', function(response) {
		document.location.reload();
	});
};


function fb_share(){
FB.getLoginStatus(function(response) {
		if (response.status === 'connected') {
		  var app_link="http://ghkdxodn.tistory.com";
		  var app_thumnail="http://ghkdxodn.tistory.com";
			//var app_thumnail="http://ghkdxodn.tistory.com/"+data.image_name; 
			//var app_thumnail="http://ghkdxodn.tistory.com/show_img.php?no="+data.no;
			FB.api('/me/feed', 'post', {message: '보낼 메세지\n'+app_link ,link: app_thumnail}); 링크공유
			FB.api('/me/feed', 'post', {message: '보낼 메세지\n'+app_link}); 메시지 
		 	alert('공유되었습니다.\n');
      // 안드로이드에서는 등록 잘되는데.. 아이폰에서 등록 안됨 ㅡㅡ 		 								
		 										
		} else if (response.status === 'not_authorized') {
			alert('접속 안됨');
		 	//FB.login();
                           FB.login(function(){}, {scope: 'publish_actions'}); //로그인하면서 글쓰기 권한
		} else {
		  //FB.login()
                    FB.login(function(){}, {scope: 'publish_actions'}); //로그인하면서 글쓰기 권한
		}
	});
}
</script>
<button id="fb-link-btn" onClick="fb_share()" >페이스북 공유</button>

 

 

 

FB.api('/me/feed', 'post', {message: '보낼 메세지\n'+app_link ,link: app_thumnail}); 링크공유
FB.api('/me/feed', 'post', {message: '보낼 메세지\n'+app_link}); 메시지

message의 값만 넣으면 그냥 새글만 등록 되고, link를 추가하면 링크공유가 됨.

 

FB.login(); 기존에 글쓰기권한없이 로그인한 경우엔 꼭 아래 소스로 다시 로그인할것!

FB.login(function(){}, {scope: 'publish_actions'}); //로그인하면서 글쓰기 권한

 

익스나 안드로이드에서는 잘 되는데 왜 아이폰에서 등록하면 스크립트는 이상 없는데 등록이 안되는 이유를 모르겠음.

아는사람 있음 댓글 부탁요!!