2014-04-11 80 views
0

我對我的網站有個想法,因爲我不知道要在哪裏找點東西,所以我需要一些初始方向。跟蹤網站用戶在Facebook上分享頁面並分配點數

我正在開發一個基於訂閱的網站,用戶可以在Facebook上分享該網站,併爲每個分享計算點數。當他們達到一定數量的積分時,他們會在訂閱時獲得折扣。

該網站是一個wordpress多站點,用戶在他們訂閱的主站點上有他們自己的帳戶區域 - 這是我想要保留其分數的記錄(即不在wordpress管理儀表板上)的位置。

有人可以請我指出正確的方向,如何跟蹤用戶共享頁面時的方式以及每次如何分配點數。

+0

你之前整合過facebook嗎?使用Facebook的Graph API? –

+0

有一點是的,但我願意學習 - 只是不知道從哪裏開始 –

+0

那麼這將是一個相當廣泛的問題。反正生病試圖解釋你。 JavaScript會工作嗎?你也想保存在一個分貝的權利? –

回答

1

如果您需要用戶標識符,即user_id,則必須使用Graph API,並且用戶應該首先對您的應用程序進行身份驗證,以允許其進行發佈。

<script> 

window.fbAsyncInit = function() { 
FB.init({ 
    appId  : '{app-id}', 
    status  : true, // check login status 
    cookie  : true, // enable cookies to allow the server to access the session 
    xfbml  : true // parse XFBML 
    }); 

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
    share(response.authResponse.userID); 
    } else if (response.status === 'not_authorized') { 
    login(); 
    } else { 
    login(); 
    } 
}); 

}; 

(function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 


    function login() 
    { 
    FB.login(function(response) { 
     if (response.authResponse) { 
     FB.api('/me', function(response) { 
      share(response.id); 
     }); 
     } else { 
     console.log('User cancelled login or did not fully authorize.'); 
     } 
    },{scope: "publish_stream"}); 
    } 

    function share(id) 
    { 
    FB.api(
     "/me/feed", 
     "POST", 
     { 
      "object": { 
      "message": "This is a test message", 
      "link": "{your-website-link}" 
      } 
     }, 
     function (response) { 
      if (response && !response.error) { 
      //make an ajax call and save the update the points wrt userId 
      } 
     } 
    ); 
} 
</script> 

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

我想代碼是自我解釋。

參考文獻:FB.loginFB.getLoginStatus/me/feed


如果你有一個用戶標識符已經,你不需要使用圖形API,相反,您可以使用Feed Dialog共享,可以在不進行用戶驗證您的應用程序。

<script> 

window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '{app-id}', 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

    FB.ui({ 
     method: 'feed', 
     link: "{your-website-link}" 
    }, function(response){ 
     // share successful 
     //ajax call here to save points 
    }); 

}; 

(function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
}(document)); 
</script> 
<div id="fb-root"></div> 

它已經在這裏粘貼了一個代碼,因爲你的問題很廣泛。如果您發現任何困難,請告訴我。

+0

感謝@Sahil Mittal對我來說這是一個很好的起點。如果我需要澄清,我會讓你知道我如何繼續 –

相關問題