Facebook поделиться с пользовательскими параметрами с API версии 2.9
Мне нужно поделиться результатом викторины на фейсбуке, содержащим пользовательский заголовок, изображение и описание. Который отлично работал до обновления до версии 2.9 18 апреля.
Но это не работает с версией 2.9. Так я что-то упускаю? Или Facebook не хочет, чтобы мы публиковали собственные фиды Facebook наших сайтов в 2017 году?
Для моей настройки тестового фида в фейсбуке я строго кодировал документацию для разработчиков в фейсбуке.
Facebook Changelog v2.9 говорит, что параметры изображения, имя, описание и подпись больше не поддерживаются.
Мой fb api init:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '*APP-ID*',
xfbml : true,
version : 'v2.9'
});
FB.AppEvents.logPageView();
};
(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 = "//connect.facebook.net/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
Мой звонок на fb-share:
<script>
$(document).ready(function() {
$('#fbButton').click(function() {
FB.ui({
method: 'feed',
link: '*URL*',
caption: 'An example caption',
picture: '*URL*/img/content4.jpg',
name: 'An example name',
description: 'An example description'
}, function(response){});
});
});
</script>
В результате я получаю фейсбук канал без изображения или описания. Единственное, что является заголовком (заголовок страницы, определенный в <head>
с <title>
).
Очевидно, что обычная процедура больше не работает.
Так есть ли способ поделиться пользовательскими текстами с пользовательскими изображениями с помощью новой версии API API Facebook 2.9?
Есть ли обходной путь? Или это просто невозможно с v2.9, потому что Facebook не хочет, чтобы мы делились подобными лентами? (для любой причины..)
(и нет, я не могу использовать теги og:)
3 ответа
Я просто попытался использовать метод открытого графика вместо подачи и переопределить свойства og, см. Ниже:
FB.ui({
method: 'share_open_graph',
action_type: 'og.shares',
action_properties: JSON.stringify({
object : {
'og:url': 'http://astahdziq.in/', // your url to share
'og:title': 'Here my custom title',
'og:description': 'here custom description',
'og:image': 'http://apps.investis.com/Dharmendra/fbPOC/south.jpg'
}
})
},
// callback
function(response) {
if (response && !response.error_message) {
// then get post content
alert('successfully posted. Status id : '+response.post_id);
} else {
alert('Something went error.');
}
});
это сработало для меня, так как я могу разместить собственное изображение с заголовком и описанием.
https://developers.facebook.com/docs/apps/changelog
Пользовательские параметры больше не возможны, общие URL-адреса берут свои данные только из тегов Open Graph на веб-сайте, теги Open Graph должны быть статическими для каждого URL. Иначе, вы можете поделиться ЛЮБЫМ URL с ЛЮБЫМ заголовком / описанием, что может вводить в заблуждение.
Просто столкнись с этой проблемой сам. После некоторых исследований я нашел это решение:
www.facebook.com/sharer.php?caption=[caption]&description=[description]&u=[website]&picture=[image-url]
Вы можете использовать JavaScript window.open для имитации поведения:
Вот рабочий пример: https://jsfiddle.net/ovidiu_turean/mhuexvjL/
<button onclick="myFunction()">Try it</button>
<script>
function myFunction() {
window.open('https://www.facebook.com/sharer.php?title=ThisIsAtitle&description=ThisIsAdesc&u=https://www.google.ro&picture=https://wallpapers.wallhaven.cc/wallpapers/full/wallhaven-526588.jpg', 'Share', 'scrollbars=yes,resizable=yes,toolbar=no,menubar=no,scrollbars=no,location=no,directories=no,width=300, height=300, top=300, left=300' );
}
</script>