Проблемы с новым SDK JavaScript от Facebook для публикации в ленте?

Ребята, у меня возникла проблема с новым SDK JavaScript от Facebook. Пытаюсь использовать метод stream.publish через FB.ui(), но он отказывается принимать вложения медиа. Выдает ошибку, что это должен быть массив, хотя я его так и передаю.

Старый API (FB.Connect.streamPublish) работал нормально с тем же форматом данных. Все остальные параметры вроде правильные.

Документация Facebook такая запутанная, что я совсем запутался. Кто-нибудь смог заставить это работать с новой версией?

Вот пример кода, который я использую:

let attachment = {
  media: [{
    type: 'image',
    src: 'путь/к/картинке.jpg',
    href: 'адрес_сайта'
  }],
  name: 'Название',
  description: 'Описание',
  href: 'адрес_сайта'
};

let action = [{
  text: 'Текст кнопки',
  href: 'адрес_сайта'
}];

FB.ui({
  method: 'stream.publish',
  message: 'Текст сообщения',
  attachment: attachment,
  action_links: action,
  user_message_prompt: 'Подсказка'
});

Может кто-то сталкивался с подобной проблемой? Буду благодарен за любую помощь!

Похоже, проблема в том, как FB обрабатывает attachment. Попробуй обернуть его в JSON.stringify() перед отправкой. Еще вариант - использовать Feed Dialog вместо stream.publish. Он проще в настройке и стабильнее работает. Вот пример:

FB.ui({
method: ‘feed’,
link: ‘адрес_сайта’,
picture: ‘путь/к/картинке.jpg’,
name: ‘Название’,
description: ‘Описание’
});

Так должно сработать без лишней мороки с форматированием данных.

Да, эта проблема реально бесит. Я тоже столкнулся с этим недавно. Попробуй передать attachment не как объект, а как строку JSON. Типа так: JSON.stringify(attachment). У меня это сработало, хотя это какой-то костыль. Странно, что FB не может нормально задокументировать свой API. Может, есть смысл попробовать альтернативные методы публикации, если этот не заработает?