FB.Event.subscribe ("comment.create") срабатывает, но возвращает 500 при первом успешном комментировании при ответе - PullRequest
0 голосов
/ 18 февраля 2019

Плагин комментариев FB выдает ошибку 500.FB.Event.Subscribe ("comment.create ', callback) запускается, но не возвращается успешно, вместо этого выдает ошибку 500. Однако, это происходит только с первым комментарием. Сообщение все еще проходит и появляется как комментарий при перезагрузке страницы.

Однако в том же сообщении, отвечая на опубликованный комментарий, оно запускает событие без каких-либо ошибок.

Я использую плагин комментариев на Facebook, и мои настройки заключаются в том, что я создаю динамический URL с помощьюПолучение данных из базы данных, а затем создание URL на основе этого на переднем конце. Я использую нокаут на переднем конце и колбу на бэкенде. Моя цель здесь - использовать плагин комментариев FB в качестве многопоточного комментария к каждому сообщению. Я запускаю pushуведомления, когда кто-то комментирует сообщение, просматривая его идентификатор.

//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})
 })

}

Как уже говорилось, событие вызывает обратный вызов, но при первом комментарии facebook запускает обработчик URL-адреса createComment, который дает 500 буt createReply успешно запускает обратный вызов.

1 Ответ

0 голосов
/ 18 февраля 2019

Событие comment.create больше не существует в JS SDK.

https://developers.facebook.com/docs/reference/javascript/FB.Event.subscribe/v3.2 больше не упоминает его, когда вы нажимаете стрелку вниз рядом с event, иhttps://developers.facebook.com/support/bugs/927463134113943/?comment_id=930637043796552 подтверждает, что он пропал: «comment.create официально убит».

Вам необходимо использовать серверные веб-зацепки сейчас, если вы хотите, чтобы ваше приложение получало уведомлениео новых комментариях, сделанных через плагин комментариев, см. https://developers.facebook.com/docs/graph-api/webhooks/reference/application/#plugin_comment

...