[英]Facebook “Like” button callback help
我正在將此代碼用於 facebook 之類的回調:
<script type="text/javascript">
FB.Event.subscribe('edge.create', function(response) {
// php script to call via ajax
});
</script>
問題是,如果我調用 php 腳本(例如http://www.test.com/addfacebook?id=xx&user=xxx&code=xxxx )有人可以看到我的 ZDE9B9ED78D7E2E1DCEEFFEE780E2F 或使用 1DCEEFFEE780E2F 並運行它有先喜歡。
這個概念是我想為每個喜歡該頁面的用戶提供一個獨特的特殊折扣代碼。 因此,在回調時,我想將 facebook 中的用戶真實姓名和我為他創建的折扣代碼存儲在數據庫和 ID 中。
怎么做才能讓別人無法覆蓋它(因為它是javascript)?
非常感謝!
了解您正在做的事情的最簡單方法是驗證用戶是否合法。 我會讓您的 ajax 操作具有包含 FacebookID 和 access_token 的參數。 這將防止任何人玩弄您的系統。
由於您使用的是 FB JS SDK - 只需像這樣調用 API :
FB.getLoginStatus(function (loginResponse) {
FB.api('/me', function (graph) {
var token = loginResponse.session.access_token;
var fbid = loginResponse.session.uid;
} else {
// no user session available, someone you dont know
}
});
我會把它放在你的 FB.Event.subscribe 中,並相應地使用令牌和 fbid 變量。
希望這可以幫助!
您可以使用 PHP SDK 來驗證 Joey 提到的令牌,一旦您在服務器上擁有令牌,請使用以下內容:
$facebook = new Facebook(); // Replace the line with the call that sets the app id and secret
$user = $facebook->api('/me',array('access_token',$_GET['access_token']));
然后檢查 $user 中的值
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.