爲了獲得粉絲頁面的頁面ID,您需要從Facebook獲取signed_request。 https://developers.facebook.com/docs/facebook-login/using-login-with-games#checklogin 事實上,這個鏈接講的是cavas頁面,但它對於粉絲頁面來說是相同的原理。
但是,如果你仔細看得到這個變量的方式,你可以發現,
簽名的請求是通過HTTP POST將其設置爲在App儀表盤的畫布上的網址發送。
這意味着,如果你想獲得簽名的請求數據,你應該通過HTTP POST獲取它。 要獲得粉絲頁面的頁面ID是不可能的,只是使用JavaScript。 Javascript是客戶端語言,因此您無法訪問POST數據。 你需要做的只是把你的JavaScript代碼放入.jsp/.php/...或任何其他服務器端語言頁面。通過服務器端語言頁面,您可以獲得已簽名的請求並將其傳遞給您的JavaScript代碼。 這裏是JSP示例:
<%String signedRequest = request.getParameter("signed_request");%><script>window.signedRequest = "<%=signedRequest%>"</script>
而且在你的JavaScript,只是解碼你得到的字符串,它包含的頁面ID。
var signedRequest = global.signedRequest;
var data1 = signedRequest.split('.')[1];
data1 = JSON.parse(base64decode(data1));
console.log(data1);
然後你就可以得到的數據是這樣的:
Object {algorithm: "HMAC-SHA256", expires: 1404925200, issued_at: 1404921078, oauth_token: "CAAUT5x1Ujq8BAPzh2ze1b4QTBkcZAtRCW6zA1xJszUasqoEPp…Fy8fAVEZAyhVaxEaq6ZBw6F4bSFI1s8xtXbBLp7oBFL4wZDZD", page: Object…}
算法: 「HMAC-SHA256」 到期:1404925200 issued_at:1404921078 的oauth_token: 「CAAUT5x1Ujq8BAPzh2ze1b4QTBkcZAtRCW6zA1xJszUasqoEPpFRfM1ln3x9pb7mLBujyug5iHUifSnyxmPHOLe030wI3H5DYXubnxbPhww9aipSnwoEr6lwctuQaGKxYvDBdZCNuFiaYIduORTWirmZC2rKL86Fy8fAVEZAyhVaxEaq6ZBw6F4bSFI1s8xtXbBLp7oBFL4wZDZD」 頁:對象 用戶:對象 user_id:「1519950734891144」 原型:對象
在頁面對象中,可以找到頁面標識。
Object {id: "1522695611287219", liked: true, admin: true}
關於如何將簽名的請求進行解碼,就可以看到這個鏈接 https://developers.facebook.com/docs/facebook-login/using-login-with-games#checklogin 這是同樣的方式。
希望這可以幫助你。
來源
2014-07-09 16:12:10
Yue
看看下面的代碼片段。 http://stackoverflow.com/questions/21887687/how-to-get-facebook-page-id-inside-page-fan-tab-using-facebook-javascript-sdk/23833163#23833163 – brainondev