7

私は現在ウェブサイトを書いていますが、Facebook の統合について助けが必要です。特定のユーザーが私の Web サイトを共有しているかどうかを確認できる関数 (PHP または JS、どちらも役立ちます) が必要ですが、その作成方法がわかりませんでした。正しい方向を教えてください。

4

2 に答える 2

7

まず、タグの直後にFacebookSDKをロードする必要があります。

<div id="fb-root"></div>
  <script>
  window.fbAsyncInit = function() {
    FB.init({
      appId                : "YOUR APP ID",
      status               : true, // check login status
      cookie               : true, // enable cookies to allow the server to access the session
      xfbml                : false,  // parse XFBML
      perms                : 'read_stream',
      access_token         : "USER ACCESS TOkEN",
      frictionlessRequests : true
    });
  };

  // Load the SDK Asynchronously
  (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/pt_BR/all.js";
    fjs.parentNode.insertBefore(js, fjs);
  }(document, 'script', 'facebook-jssdk'));

</script>

次に、コールバック関数を使用して、必要なことを実行できます。

<script type="text/javascript">
    function shareOnFacebook() {
    FB.ui(
      {
        method        : 'feed',
        display       : 'iframe',
        name          : 'name',
        link          : 'http://www.linktoshare.com',
        picture       : 'http://www.linktoshare.com/images/imagethumbnail.png',
        caption       : 'txt caption',
        description   : 'txt description',
        access_token  : 'user access token'
      },
      function(response) {
        if (response && response.post_id) {

          // HERE YOU CAN DO WHAT YOU NEED
          alert('OK! User has published on Facebook.');

        } else {
          //alert('Post was not published.');
        }
      }
    );
  }
</script>

次に、次のように使用する必要があります。

<a href="#" onclick="shareOnFacebook();">Share on facebook</a>
于 2012-06-21T13:22:21.853 に答える
5

JavaScript SDKFB.ui()feedダイアログを使用して、ユーザーに Facebook で URL を共有するよう促すことができます。このダイアログはコールバック関数を提供するため、投稿が正常に行われたかどうかを確認できます。
上記のリンクから持ち上げられたコードサンプル...

 var obj = {
    method: 'feed',
    link: 'https://developers.facebook.com/docs/reference/dialogs/',
    picture: 'http://fbrell.com/f8.jpg',
    name: 'Facebook Dialogs',
    caption: 'Reference Documentation',
    description: 'Using Dialogs to interact with users.'
};

function callback(response) {
    document.getElementById('msg').innerHTML = "Post ID: " + response['post_id'];
}

FB.ui(obj, callback);

これは、必要なことを達成するための最も簡単な方法です。ただし、誰かがあなたのウェブサイトの URL をfeedダイアログの外で共有したかどうかをテストすることはできません。


read_streamダイアログ コールバックを必要としない、より複雑な代替手段は、パーミッションを利用することで実現できます。その許可を取得したら、ユーザーの過去の投稿をスキャンして、そのユーザーが自分のウォールであなたのウェブサイトを共有したことがあるかどうかを確認できます...

ユーザーが他の誰かのウォールやページであなたのウェブサイトを共有した場合、これは機能しないことに注意してください...

于 2012-06-21T13:22:35.973 に答える