18

나는 & 공유 버튼과 같은 자바 스크립트 콜백 함수와 같은 페이스 북을 배치 한 웹 페이지도 있습니다.Facebook은 콜백을 좋아하고 공유 버튼을 사용합니다

이제 문제는 자바 스크립트 콜백이 '좋아요'인 경우에만 발생하고 '공유'버튼을 누르면 실행되지 않는 것입니다.

나는 그/그녀가 링크를 공유 할 때마다 사용자에게 상을 줄 필요가 있습니다. 'like'가있는 반면, 사용자는 링크를 한 번만 좋아할 수 있습니다 (달리/재사용을 고려하지 않음).

공유 버튼이 더 이상 사용되지 않습니다. 그러나 페이스 북은 이제 같은 버튼으로 공유 버튼을 제공합니다. 출처 : https://developers.facebook.com/docs/plugins/like-button/

이 공유 버튼에서이 콜백 메소드를 실행하는 방법이 있습니까?

<div class="fb-like" data-href=" My URL " data-layout="button_count" data-action="like" data-show-faces="false" data-share="true"></div> 
- 다음처럼 & 공유 버튼을 표시

<div id="fb-root"></div> 

<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId: ' My App ID ', 
     status: true, 
     cookie: true, 
     xfbml: true, 
     oauth: true 
    }); 
    FB.Event.subscribe('edge.create', function(response) { 
     alert('You liked the URL: ' + response); 

     }); 
}; 
(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/en_US/all.js"; 
    d.getElementsByTagName('head')[0].appendChild(js); 
}(document)); 

     </script> 

코드 - 내 HTML의 BODY 태그의 시작 부분에

코드 : 여기

내 코드입니다
+0

코드를 입력하십시오. 그것 없이는 당신을 도울 수 없을 것입니다. – Michael

+0

완료. 도와주세요! – Krish

답변

29

같은 버튼을 사용하여 공유 콜백을받을 수 없습니다. 대신 작동하는 응용 프로그램 ID를 변경 당신의 공유 버튼을 만들고 해당 클릭 -

FB.ui(
{ 
    method: 'feed', 
    name: 'Facebook Dialogs', 
    link: 'https://developers.facebook.com/docs/dialogs/', 
    picture: 'http://fbrell.com/f8.jpg', 
    caption: 'Reference Documentation', 
    description: 'Dialogs provide a simple, consistent interface for applications to interface with users.' 
}, 
function(response) { 
    if (response && response.post_id) { 
    alert('Post was published.'); 
    } else { 
    alert('Post was not published.'); 
    } 
} 
); 
+0

피드 대화 상자에 대해 전혀 알지 못했습니다! 나는 이것이 정확히 내가 무엇을 찾고 있다고 생각한다. 해결! – Krish

+1

이 방법을 호출하기 위해 페이 스북 스타일의 버튼을 얻을 수 있습니까? – SverkerSbrg

+1

@SverkerSbrg 이것을 알아낼 수 있었습니까? – TimNguyenBSM

8

전체 코드에 Feed Dialog를 호출 여기

$("#bodyarea").on('click', '.share_fb', function(event) { 
    event.preventDefault(); 
    var that = $(this); 
    var post = that.parents('article.post-area'); 

    $.ajaxSetup({ cache: true }); 
     $.getScript('//connect.facebook.net/en_US/sdk.js', function(){ 
     FB.init({ 
      appId: '822306031169238', //replace with your app ID 
      version: 'v2.3' 
     }); 
     FB.ui({ 
      method: 'share', 
      title: 'TTitle Test', 
      description: 'Test Description Goes here. Tahir Sada ', 
      href: 'https://developers.facebook.com/docs/', 
      }, 
      function(response) { 
      if (response && !response.error_code) { 
       alert('Posting completed.'); 
      } else { 
       alert('Error while posting.'); 
      } 
     }); 
    }); 
}); 

입니다 수

Working Example

2

APP를 게시하기를 원치 않는 사람들에게 내가 작성한 다른 방법은 다음과 같습니다.

jQuery("#div_share").click(function() { 

     var url = "http://www.facebook.com/sharer/sharer.php?u=YOUR_URL&title=YOUR_TITLE"; 

     var openDialog = function(uri, name, options, closeCallback) { 
      var win = window.open(uri, name, options); 
      var interval = window.setInterval(function() { 
       try { 
        if (win == null || win.closed) { 
         window.clearInterval(interval); 
         closeCallback(win); 
        } 
       } 
       catch (e) { 
       } 
      }, 1000); 
      return win; 
     }; 

     openDialog(url,'Facebook','width=640,height=580', function(){ 
      jQuery("#div_share").hide(); 
      jQuery("#formulario").show(); 
     }); 
    }); 

공유 할 자바 스크립트 대화 상자가 열리고 사용자가 닫을 때 알 수 있습니다. :

+0

은 공유 여부를 알 수있는 방법이 있습니다. 도와주세요 . –

+0

@Ron 당신은 할 수 없습니다. 그 코드로는 할 수 없습니다. 왜냐하면 그것은 창문을 열고 닫을 때만 기다려야하기 때문입니다. 이점은 당신이 페이스 북에 응용 프로그램을 등록 할 필요가 없다는 것입니다, 그것은 당신에게 많은 시간이 걸릴 것입니다. –

1

<div class="fb-like" data-href="page_link" data-layout="button_count" data-onshare="page_like_or_unlike_callback" data-onlike="page_like_or_unlike_callback" data-action="like" data-size="large" data-show-faces="true" data-share="false"></div>

그냥 data-onlike="function_name"을 추가하고 자바 스크립트에서 함수를 정의 .. 그들은 정말 컨텐츠를 공유하는 보장 ...하지만 아니에요. 귀하의 완료, 당신의 기능은 귀하의 웹 사이트에 사람이 타격하자마자 호출됩니다. 공유 버튼의 경우 아직 개발 모드입니다. 곧 알려 드리겠습니다.

관련 문제