使用facebook javascript sdk向某人的个人资料帖子、页面帖子或群组帖子发表评论

使用facebook javascript sdk向某人的个人资料帖子、页面帖子或群组帖子发表评论,javascript,facebook,sdk,Javascript,Facebook,Sdk,我想使用Facebook Javascript SDK和访问令牌以及Graph-API向某人的Facebook个人资料帖子、页面帖子或群组帖子发表评论 我可以从具有publish\u stream权限的当前登录用户生成应用程序访问令牌。如何使用post id使用Javascript-SDK调用,以便用户可以在Facebook之外(即显示所有页面/个人资料/群组帖子的我的站点)发表评论 我尝试了PHP SDK,但未在服务器站点上运行。假设用户已登录并且访问令牌具有发布流权限,您应该调用 FB.ap

我想使用
Facebook Javascript SDK
和访问令牌以及
Graph-API
向某人的Facebook个人资料帖子、页面帖子或群组帖子发表评论

我可以从具有
publish\u stream
权限的当前登录用户生成应用程序访问令牌。如何使用
post id
使用Javascript-SDK调用,以便用户可以在Facebook之外(即显示所有页面/个人资料/群组帖子的我的站点)发表评论


我尝试了PHP SDK,但未在服务器站点上运行。

假设用户已登录并且访问令牌具有发布流权限,您应该调用

FB.api('/'+ _POST_ID_HERE_ +'/comments', 'POST', { message:"Your comment text" },
       function(response)
       {
            if (response && !response.error && response.id)
            {
                 alert('New comment id = '+response.id);
            }
       });
函数注释(pid) { FB.init({ appId:'472562079456084', 状态:true,//检查登录状态 //channelUrl:'//WWW.YOUR_DOMAIN.COM/channel.html',//频道文件 cookie:true,//启用cookie以允许服务器访问会话 xfbml:true//解析xfbml //真的吗 }))

FB.登录(功能(响应){
如果(response.status=='connected'){
if(response.authResponse.accessToken){
var token=response.authResponse.accessToken;
api('/'+pid+'/comments?access_token='+token+''POST',{message:'test'},函数(响应){
如果(!response | | response.error){
ms#js(“#msfb error comlike”).text(“错误您可能没有权限”);
}否则{
ms#js(“#msfb error comlike”).text(“Post success”);
}
});
//window.location=“&testoken=“+token+”;
}否则{
//用户已登录,但未授予任何权限
警报('您只能为自己的配置文件和页面创建访问令牌');
}
}否则{
//用户未登录
警报('要使用fb.wall,必须创建访问令牌');
}
},{scope:'read_stream,publish_stream'})//排除publish_stream,publish_操作
}


这是我的完整功能,它可以进行注释。在这里,我通过应用程序id生成访问令牌。是否正确?通过应用访问令牌,用户可以在另一个页面上发表评论,配置文件帖子,而不是他的页面或配置文件帖子?!事情进展顺利,所以使用@Const实际上是publish_stream权限适用于另一个用户,该用户对我测试的另一个用户配置文件帖子进行评论。但是对于仍然存在问题的用户,不知道为什么!。在我的本地站点中使用javascript sdk生成所有权限的令牌不起作用,但当我在此处生成时可以工作-developers.facebook.com/tools/explorer

我已经这样做了-FB.api('508859247/comments?message=metedddst44&access_-token=BAA94UZAlk9QG2VKIoThFwyEZD','post',函数(response){if(!response | | response.error){alert('error occurrent');}else{alert('comment added to the post');});但我收到了“错误发生”,其中帖子id是另一个用户的个人资料帖子,并且是公开的。我尝试了您的方法,但出现了相同的问题。您可以将response.Error添加到您的警报消息中,并查看帖子的错误。否则它应该按原样工作。我确实添加了response.error,但没有显示任何内容。稍后,我通过此链接生成了一个访问令牌,授予所有权限,并尝试使用该令牌,然后它就可以工作了。因此,要对配置文件帖子发表评论,我必须使用一些其他权限生成令牌(不仅仅是发布\u流权限)任何人都可以帮助您获得所需的特定权限吗?您可以尝试在Graph Explorer中仅使用“publish_stream”权限生成访问令牌,并查看它是否有效。如果没有,请逐个添加权限,看看是否有帮助。也许你也应该添加“read_stream”权限,但我在FB的文档中没有看到任何提及。@Fred你的许多编辑现在都出现在编辑队列中,而且几乎都太小了。请不要继续建议编辑,除非他们解决了问题中的实质性问题。@NicholasWilson对不起,只是想让事情变得更好,并尽我的一份力。这是我心中的“图书编辑”
    FB.login(function(response) {
        if (response.status=='connected') {
            if (response.authResponse.accessToken) {
                var token = response.authResponse.accessToken;      

                FB.api('/'+pid+'/comments?access_token='+token+'', 'POST',{ message:'test' }, function(response) {
                  if (!response || response.error) {
                    ms_js("#msfb-error-comlike").text("Errors you may not have permissions ");
                  } else {
                    ms_js("#msfb-error-comlike").text("Post success");
                  }
                });
                //window.location = "<? echo $absolute_url; ?>&temptoken="+ token +"";
            } else {
                // user is logged in, but did not grant any permissions
                alert('You can create an access token only for your own profiles and pages.');
            }
        } else {
            // user is not logged in
            alert('To use fb.wall you have to create an access token.');
        }
    }, {scope:'read_stream,publish_stream'}); //exclude publish_stream,publish_actions