Я пытаюсь использовать JavaScript SDK, чтобы опубликовать заметку с моего сайта, а затем сразу же разрешить размещение комментария к этой заметке. Я успешен в первой части. Вот соответствующий фрагмент:

alert('posting to path (' + path + ') with params (' + JSON.stringify(params) + ')');
FB.api(path, "post", params, function(response) {
    if (response.error) {
        alert(response.error.type + ": " + response.error.message);
    } else {... do stuff ...}

Обратите внимание, что я сбрасываю переменные, которые передаю для проверки. Результаты выглядят следующим образом:

При публикации заметки:

posting to path (/100003217376622/notes) with params ({"access_token":"AAAChRmSu9s8BACFDhWCFnIS8R3OTZCSxZAyL4hLbAQxGUrn0t4ksZC5CS62qlLtAIconOKCreAUpaorzOZCHkxp2DlTfcc2c8vOY5MOLPdHMqdfWMu2V","subject":"Note #1","message":"My note"})

Это отлично работает, и число, предшествующее «/notes», является идентификатором моего профиля.

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

При публикации комментария к этой заметке:

posting to path (/124528970997681/comments) with params ({"access_token":"AAAChRmSu9s8BACFDhWCFnIS8R3OTZCSxZAyL4hLbAQxGUrn0t4ksZC5CS62qlLtAIconOKCreAUpaorzOZCHkxp2DlTfcc2c8vOY5MOLPdHMqdfWMu2V","message":"Comment on Note # 1"})

Это приводит к ошибке, показанной ниже:

OAuthException: (#200) Cannot access object_id: 124528970997681

Число, предшествующее «/comments», на самом деле является идентификатором заметки, так как при наведении курсора на ссылку заметки на моей стене я вижу этот URL-адрес: http://www.facebook.com/notes/danja-garno/note-1/124528970997681, что действительно приводит меня к Примечание.

Есть идеи, почему я получаю эту ошибку?

============================= ОБНОВЛЕНИЕ ============= =====================

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

Я заметил две вещи, которые могут дать ключ к разгадке. Во-первых, постоянная ссылка для link выглядит так:

http://www.facebook.com/permalink.php?story_fbid=285359141511345&id=100003217376622

А постоянная ссылка для заметки выглядит так:

http://www.facebook.com/notes/danja-garno/note-this-note/127723150678263

ТАКЖЕ, когда я напрямую обращаюсь к этим объектам через URL API Graph, я получаю два разных ответа.

Я получил правильный ответ для ссылки с помощью этого URL https: // графика .facebook.com/141246962656776?access_token=AAAChRmSu9s8BAKedPE9DyZB5W0lQYgn71WkFFtR0wIBMHp3Qgr09vmZA7YhvzJbgoigQRHsaqXqOhpmrbzdhWd6QYV8jHvsKjSVMpLZBTDp8GI9Lax7Lax7

<Сильный> НО , когда я попытался получить доступ к <сильный> Примечание таким же образом, используя этот URL https://graph.facebook.com/124528970997681?access_token=AAAChRmSu9s8BAKedPE9DyZB5W0lQYgn71WkFFtR0wIBMHp3Qgr09vmZA7YhvzJbgoigQRHsaqXqOhpmrbzdhWd9aGIxDV8jHvsKZ

Все, что он вернул, было «ложным». Что случилось с этим?

2
Danja Garno 31 Дек 2011 в 00:19
Отличный вопрос! Можно ли опубликовать комментарий к заметке позже?
 – 
DMCS
31 Дек 2011 в 06:21
=> Если я подойду к своей стене, конечно. Но мое приложение дает пользователю только возможность «оставить комментарий к последнему сообщению», и как только вы покидаете страницу, эта возможность исчезает. Он устроен так, чтобы вы могли добавить комментарий сразу после вашего поста из моего приложения, и это все.
 – 
Danja Garno
3 Янв 2012 в 21:18
Хорошо, значит, это явно проблема времени, и вы не можете сразу оставить комментарий к новому сообщению. Я предлагаю вам поставить этот комментарий в очередь для последующей обработки (скажем, 1 минуту) и посмотреть, сработает ли это. Отрегулируйте время удержания очереди, пока не получите наилучшую производительность.
 – 
DMCS
3 Янв 2012 в 21:38
Я провел несколько тестов, и это не проблема времени. Проблема в том, что я не могу получить доступ к объекту заметки. Это подтверждается тем фактом, что заметка недоступна по URL-адресу графа. Смотрите обновление в вопросе выше.
 – 
Danja Garno
5 Янв 2012 в 01:24

1 ответ

Наконец-то я смог найти время, чтобы попробовать это.

Я могу опубликовать заметку, а затем опубликовать комментарий к этой заметке через Graph API. Я все еще думаю, что это проблема синхронизации, когда граф медленно сохраняет заметку во всех местах, где это необходимо (и база данных графа может быть последним хранилищем данных, которое будет реплицировано). Поэтому я бы предложил поместить комментарий в очередь ожидания для обработки в более позднее время (возможно, дать ему 1 минуту).

0
DMCS 14 Янв 2012 в 02:14