Как получить обратный вызов при публикации в социальных сетях через JavaScript

Проблема с получением ответа от социальных сетей

Привет всем! Я работаю над функцией публикации контента в социальных сетях и столкнулся с проблемой. Мне нужно понять, успешно ли был опубликован пост или произошла ошибка.

Мой текущий код:

<div class="social-share-btn" data-oncomplete="handleShareResult">Поделиться</div>

function handleShareResult(responseData) {
    console.log("Результат: " + responseData.status);
}

Также пробовал такой вариант:

$('.social-share-btn').click(function() {
    $('.social-share-btn').attr("data-url", "http://example.com");
    socialAPI.share.init();
    window.open('https://social-platform.com/share?url='+encodeURIComponent('example.com')+'&text='+encodeURIComponent('Посмотрите это'),'', 'width=500,height=400,scrollbars=yes');
    handleShareResult();
});

К сожалению, обратный вызов не работает и я не получаю информацию о том, была ли публикация успешной. Может кто-то помочь настроить правильный callback для любой социальной сети? Буду очень благодарен за любые советы!

А ты пробовал localStorage трюк? Открываешь popup, записываешь туда скрипт - он при успешном шаре пишет результат в localStorage. В основном окне проверяешь каждые пару секунд. Не очень элегантно, но работает с большинством соцсетей. Какую платформу используешь?

Popup работает в изолированном контексте, поэтому callback напрямую не получишь. Используй postMessage API - в popup добавь слушатель на закрытие, а в родительском окне слушай событие message. Можно еще через setInterval проверять, закрылось ли popup - тогда поймешь, что действие завершено. Правда, это даст только факт взаимодействия пользователя, а не 100% гарантию успешной публикации.

Да, popup окна - сплошная головная боль… У меня была похожая проблема, решил через iframe с соц сетью и polling для отслеживания изменений url. Еще можно использовать официальные SDK - Facebook SDK или VK API. Они дают нормальные колбеки с результатом. Правда, придется подключать дополнительные библиотеки, но зато callback точно работает.