如何使用FacebookJavaScript sdk在页面风扇选项卡中获取facebook页面id

如何使用FacebookJavaScript sdk在页面风扇选项卡中获取facebook页面id,javascript,facebook,tabs,Javascript,Facebook,Tabs,我正在尝试创建一个web应用程序,为facebook页面创建一个粉丝标签 我的问题是 我试过这个:- FB.api( "/{page-id}/feed", function (response) { if (response && !response.error) { /* handle the result */ } } )) 如何使用FacebookJavaScript sdk在页面风扇选项卡中获取facebook页面id 这张图片描述了我想做的事情: 我

我正在尝试创建一个web应用程序,为facebook页面创建一个粉丝标签

我的问题是

我试过这个:-

FB.api(
"/{page-id}/feed",
function (response) {
  if (response && !response.error) {
    /* handle the result */
  }
}
))

如何使用FacebookJavaScript sdk在页面风扇选项卡中获取facebook页面id

这张图片描述了我想做的事情:

我什么都试了,但没有用:(


谢谢

您可以使用fql获得您想要的一切。

我认为这会对你有用:

在facebook页面标签中不起作用…我以前和现在都是这样


任何新想法:)

这是一个经过测试的解决方案,使用Facebook Javascript SDK及其未记录的parseSignedRequest方法

注意:您将不得不使用一些服务器代码,这个例子是针对PHP的,但这是我能找到的最简单的例子

您的html页面(或您提供的任何内容):


.....
//使用Facebook通过POST发送到你的应用程序URL的签名请求设置一个变量
var signedRequest=“”;
FB.getLoginStatus(函数(响应){
//不要使用response.authResponse.signedRequest,而是使用上面的一个
//让javascript SDK为您解析好的签名请求
var page=this.parseSignedRequest(signedRequest).page;
//当前用户是此页面的管理员吗?对/错
var isAdmin=page.admin;
//你喜欢这一页吗?对/错
var isLiked=page.liked;
//这是Facebook页面ID
var pageID=page.id;
如果(response.status===“已连接”){
//用户已连接
}else if(response.status===“未授权”){
//用户已登录到Facebook,
//但尚未验证您的应用程序
}否则{
//用户未登录到Facebook。
}
},对);

希望这有帮助。干杯。

为了获得粉丝页面的页面id,你需要从Facebook获得签名的请求。 事实上,这个链接谈论的是cavas页面,但对于fan页面来说,这是相同的原则

但是如果你仔细观察得到这个变量的方法,你会发现

签名的请求通过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>
然后您可以获得如下数据:

Object {algorithm: "HMAC-SHA256", expires: 1404925200, issued_at: 1404921078, oauth_token: "CAAUT5x1Ujq8BAPzh2ze1b4QTBkcZAtRCW6zA1xJszUasqoEPp…Fy8fAVEZAyhVaxEaq6ZBw6F4bSFI1s8xtXbBLp7oBFL4wZDZD", page: Object…}
算法:“HMAC-SHA256” 有效期:1404925200 发行时间:1404921078 oauth_令牌:“CAAUT5x1UJQ8BAPZH2ZE1BBKCZATRCW6ZA1XJSZUASQoEPPFRFM1LN3X9PB7LBUJYUG5IHUIFSNYXPHOLE030WI3H5DYX0BNXBPHW9IPSWOER6WCTUQAQXYVDZCNUYIYIYDUORTWIRZC2RKL86FYVEZAYVAXE6ZBW6F4BSFI8TXBBL7OBL4WZD” 页面:对象 用户:对象 用户id:“1519950734891144” 原型:对象

在页面对象中,可以找到页面id

Object {id: "1522695611287219", liked: true, admin: true} 
关于如何解码已签名的请求,您可以看到以下链接 也是这样


希望这能对您有所帮助。

您必须从服务器端将签名请求发布到您的应用程序。
浏览链接了解页面选项卡和页面id。

看看下面我的代码片段。
Object {id: "1522695611287219", liked: true, admin: true} 
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…}
Object {id: "1522695611287219", liked: true, admin: true}