Поделиться в Facebook с пользовательскими параметрами с API версии 2.9

Мне нужно поделиться результатом викторины на Facebook, содержащей собственный заголовок, изображение и описание. Которая отлично работала до обновления до версии 2.9 18 апреля.

Но это не работает с версией 2.9. Так я что-то там упускаю? Или Facebook не хочет, чтобы в 2017 году мы делились пользовательскими фидами своих веб-сайтов?

Для моей настройки для тестовой ленты Facebook я кодировал строго с документация для разработчиков Facebook.

Facebook Changelog v2.9 говорит, что изображение, имя, описание и заголовок параметра не поддерживается больше.

Моя инициализация fb api:

<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>

Мой звонок в фейсбуке:

<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>

В результате я получаю ленту facebook без изображения или описания. Единственное, это заголовок (заголовок страницы определяется в <head> с <title>).

Очевидно, что обычная процедура больше не работает.

Итак, есть ли способ поделиться пользовательским текстом с пользовательскими изображениями с помощью новой версии API Facebook версии 2.9?

Есть ли обходной путь? Или это просто невозможно с версией 2.9, потому что Facebook не хочет, чтобы мы делились пользовательскими лентами, подобными этому? (для любой причины..)

(и нет, я не могу использовать og:tags)


comment
@CBroe, не могли бы вы опубликовать ссылку на заявление о том, что это часть борьбы с фейковыми новостями?   -  person Alex    schedule 06.05.2017
comment
Извините, это не основано на каком-либо официальном заявлении; назовите это интуицией, если хотите, основываясь на новостных сообщениях, обсуждениях с разработчиками Facebook и т. д.   -  person CBroe    schedule 06.05.2017
comment
кажется, они сделали официальное заявление о борьбе с фейковыми новостями: developers.facebook.com/blog/post/2017/06/27/   -  person rtpHarry    schedule 04.11.2017


Ответы (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.');
            }
        });

это сработало для меня, так как я могу опубликовать собственное изображение с заголовком и описанием.

person Vipul    schedule 30.08.2017

Просто сам столкнулся с этой проблемой. После некоторых исследований я нашел это решение:

www.facebook.com/share.php?caption=[caption]&description=[описание]&u=[веб-сайт]&picture=[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>
person Ovidiu Turean    schedule 14.06.2017
comment
facebook только что удалил конечную точку sharer.php. Итак, мой пример (описанный выше) больше не работает - person Ovidiu Turean; 07.08.2017
comment
они не удалили sharer.php, но он принимает только URL-адрес в качестве параметра. это уже много лет. - person luschn; 28.08.2017

https://developers.facebook.com/docs/apps/changelog#v2_9

Пользовательские параметры больше невозможны, общие URL-адреса берут свои данные только из тегов Open Graph на веб-сайте, теги Open Graph должны быть статическими для каждого URL-адреса. В противном случае вы можете поделиться ЛЮБЫМ URL-адресом с ЛЮБЫМ заголовком/описанием, что может ввести в заблуждение.

person luschn    schedule 28.08.2017