FB.Event.subscribe(“comment.create”) fires but returns 500 when commenting first successful when replying

ぐ巨炮叔叔 提交于 2019-12-13 04:25:07

问题


FB comment plugin gives 500 error. FB.Event.Subscribe("comment.create',callback) is fired but does not return successfully instead throws a 500 error.However,this only happens on the first comment.The post still goes through and appears as comment on page reload.

However,on the same post,when replying to the posted comment,it fires the event without any errors.

I am using facebook comment plugin and my setup is that i create dynamic url by getting data from the database and then create url based on that on front end.I am using knockout on the front end and flask at the backend.My goal here is to utilise FB comment plugin as threaded comment on each post.I am triggering push notifications when someone comments on the post by looking at the id of the post.

//HTML
<div data-bind="text:$data.location, 
click:window.animateMarkerOnClick.bind($data), attr: { id: 
$data.key,class:'search-list' }"></div>
<div id="listing-msg" > 
</div>
<div class="fb-comments" data-bind='attr:{"href": 
"http://localhost:8080/postit/get_share_listings/#" + 
$data.key,"id":$data.key}' data-width="320" data-numposts="1" data- 
colorscheme = "dark" notify = "true" data-order-by = "reverse_time"></div>

//JS EVENT SUBSCRIPTION
window.fbAsyncInit = function() {
    FB.init({
      appId            : 'xxxxxxx',
      autoLogAppEvents : true,
      xfbml            : true,
      version          : 'v3.2'
    });
  FB.Event.subscribe("comment.create", push)

};

 (function(d, s, id){
 var js, fjs = d.getElementsByTagName(s)[0];
 if (d.getElementById(id)) {return;}
 js = d.createElement(s); js.id = id;
 js.src = "https://connect.facebook.net/en_US/sdk.js";
 fjs.parentNode.insertBefore(js, fjs);

}(document, 'script', 'facebook-jssdk'));

//callback
function push(){
$.ajax({
     type: "POST",
     url: "http://localhost:8080/postit/push",
     contentType: 'application/json;charset=UTF-8',



 data:JSON.stringify({"data":document.activeElement.
 parentElement.parentElement.parentElement.children[0].id})
 })

}

As already stated,the event triggers callback but on first comment facebook triggers url handler createComment which gives 500 but createReply successfully triggers the callback.


回答1:


The comment.create event does not exist any more in the JS SDK.

https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/v3.2 does not mention it any more, when you click the down arrow next to event, and https://developers.facebook.com/support/bugs/927463134113943/?comment_id=930637043796552 confirms it is gone: “comment.create is officially killed.”

You need to use server-side webhooks now, if you want your app to get notified about new comments made via the comments plugin, see https://developers.facebook.com/docs/graph-api/webhooks/reference/application/#plugin_comment



来源:https://stackoverflow.com/questions/54738920/fb-event-subscribecomment-create-fires-but-returns-500-when-commenting-first

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!