为了获取粉丝页面的page id,你需要从Facebook获取signed_request。
https://developers.facebook.com/docs/facebook-login/using-login-with-games#checklogin
其实这个链接讲的是cavas页面,但是对于fan page的原理是一样的。
但是如果你仔细查看获取这个变量的方法,你会发现,
签名的请求通过 HTTP POST 发送到在应用仪表板中设置为画布 URL 的 URL。
这意味着,如果你想获得一个签名的请求数据,你应该通过一个 HTTP POST 来获得它。
仅使用 javascript 无法获取粉丝页面的页面 id。 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
发布时间:1404921078
组oauth_token: “CAAUT5x1Ujq8BAPzh2ze1b4QTBkcZAtRCW6zA1xJszUasqoEPpFRfM1ln3x9pb7mLBujyug5iHUifSnyxmPHOLe030wI3H5DYXubnxbPhww9aipSnwoEr6lwctuQaGKxYvDBdZCNuFiaYIduORTWirmZC2rKL86Fy8fAVEZAyhVaxEaq6ZBw6F4bSFI1s8xtXbBLp7oBFL4wZDZD”
页面:对象
用户:对象
用户 ID:“1519950734891144”
原型:对象
在page对象中,可以找到page id。
Object {id: "1522695611287219", liked: true, admin: true}
关于如何解码签名请求,可以看这个链接
https://developers.facebook.com/docs/facebook-login/using-login-with-games#checklogin
方法一样。
希望对你有帮助。