Значение идентификатора в комментариях Facebook. Создание обратного вызова - PullRequest
4 голосов
/ 24 августа 2011

Согласно документации Facebook , обратный вызов comment.create содержит свойство идентификатора комментария:

{
  href: "",         /* Open Graph URL of the Comment Plugin */
  commentID: "",    /* The commentID of the new comment */
}

Однако я вижу, что обратный вызов содержит общее свойство идентификатора, которое нене меняйте комментарии.Например, когда я отлаживаю обратный вызов, я получаю commentID значение "10150259852273822", но это значение не изменяется для любого комментария, оставленного на этой странице.Ниже приведен пример для комментариев из Graph API, обратите внимание, что идентификатор одинаков для нескольких комментариев, но к нему добавляется число "_XXXX", которое фактически является идентификатором.

 {
    "id": "10150259852273822_17973898",
    "from": {
       "name": "XXXXXX",
       "id": "XXXXX"
    },
    "message": "newest comment",
    "created_time": "2011-08-24T19:24:02+0000"
 },
 {
    "id": "**10150259852273822**_17973932",
    "from": {
       "name": "XXXXX",
       "id": "XXXXX"
    },
    "message": "brand newest comment.",
    "created_time": "2011-08-24T19:25:40+0000"
 }

Кто-нибудь знает, как вы можете получить полный идентификатор с помощью события comment.create?Или есть другое поле, которое можно использовать для предсказания формата commonid_commentID?

Ответы [ 2 ]

5 голосов
/ 30 сентября 2011

Идентификатор комментария от обратного вызова на самом деле является "post_fbid".Вот как вы можете получить комментарий (и связанные с ним данные):

FB.Event.subscribe('comment.create', function(response) {
    var commentQuery = FB.Data.query("SELECT text, fromid FROM comment WHERE post_fbid='"+response.commentID+"' AND object_id IN (SELECT comments_fbid FROM link_stat WHERE url='"+response.href+"')");
    var userQuery = FB.Data.query("SELECT name, uid FROM user WHERE uid in (select fromid from {0})", commentQuery);

    FB.Data.waitOn([commentQuery, userQuery], function() {
        // Do whatever you want with the data
        console.log(commentQuery.value[0].text);
        console.log(userQuery.value[0].name)
        console.log(userQuery.value[0].uid);
    });
});
1 голос
/ 25 августа 2011

Для чего вам нужен / нужен идентификатор. Возможно, мы сможем найти лучшее решение для того, что вам нужно.

Элемент общего идентификатора, скорее всего (вне моей головы), специфичен для этой формы комментариев. И дополнительный бит - это истинный идентификатор комментария.

Полным идентификатором комментария является весь элемент, ваш номер, который не изменяется, и добавленный элемент размещают подчеркивание.

Взгляните сюда: http://developers.facebook.com/docs/reference/api/Comment/ И на примере графа URL.

Полная строка, включающая подчеркнутый элемент, является полностью частью идентификатора комментария

...