Пользователи не могут делиться непосредственно на своих страницах в Facebook, только в своем профиле - PullRequest
0 голосов
/ 06 июля 2018

У меня есть следующий способ, позволяющий моим пользователям обмениваться динамическим контентом с нашего сайта на Facebook

 window.fbAsyncInit = function() {
        FB.init({
          appId            : 'XXXX',
          autoLogAppEvents : true,
          xfbml            : true,
          version          : 'v3.0'
        });
        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'));

В основной папке javascript. Теперь для каждого контента, которым я хочу поделиться, у меня есть следующее

function compartirFB(img,desc,txtTitulo){
        var text = desc;
        var titulo = txtTitulo;
        var url      = window.location.href +'#somehash"; 


         FB.ui({
        method: 'share_open_graph',
        action_type: 'og.likes',
        action_properties: JSON.stringify({
            object: {
                'og:url': url,
                'og:title': 'custom title '+titulo,
                'og:description': text,
                'og:image': img
            }
        })
        },
        function (response) {

        });
    }

это прекрасно работает с динамическим изображением. Основная проблема заключается в том, что пользователь не может поделиться этим контентом на своих страницах в Facebook, только в своем основном профиле, как показано на рисунке ниже

Unable to share with one of my own facebook pages

Как видно на картинке, я могу поделиться контентом на своих страницах в Facebook.

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

FB.ui({

                app_id: xxxxx,
                method: 'share',
                href: url,
                image: 'https://ayuntamiento.xalapa.gob.mx'+img,
                title: title,
                description: text,
                caption: 'Quackpower' 


    },
    function (response) {

    });

, которое дает мне это окно с изображением по умолчанию из метатега

Share 2

Где я могу изменить форму, где я делюсь, создать свой профиль или любую страницу, которой я управляю

Может кто-нибудь дать мне путь, по которому я буду следовать? спасибо!

1 Ответ

0 голосов
/ 06 июля 2018
method: 'share_open_graph',

Истории Open Graph - это то, что только пользователи могут публиковать, страницы никогда не смогут. Истории OG предназначены для того, чтобы пользователи могли теперь рассказать другим о том, какие действия они выполняют в настоящее время, а страницы - не люди.

Я пытался другим способом поделиться контентом, но с этой опцией кажется, что я не могу динамически изменить изображение

Возможность задавать любой из этих параметров динамически во время совместного использования была удалена некоторое время назад - часть борьбы с «поддельными новостями».

Единственный способ сделать это сейчас, это если вы публикуете страницу, на которой заявлено право собственности на контент - см. https://developers.facebook.com/docs/sharing/domain-verification
Но я думаю, что даже это будет означать, что вам нужно будет размещать эти посты на странице, администратором которой вы являетесь через API - я не думаю, что диалог Share или Feed может справиться с этим динамически; им придется переключаться между «статическим» и «динамическим» предварительным просмотром в зависимости от того, где пользователь выбирает обмен, и это просто не реализовано AFAIK.

Кроме этого, единственным вариантом является создание на сервере отдельных URL-адресов, которые возвращают требуемый набор метаданных OG по запросу. Если вам нужно поделиться одним и тем же с другим контентом для предварительного просмотра, вы можете создать несколько таких URL-адресов и перенаправить посетителей-людей, которые переходят по этим ссылкам, на «основной» URL-адрес. Если вы пойдете по этому пути, вы должны знать, что лайки и акции для этих разных URL-адресов также будут учитываться индивидуально, поэтому вы фактически «разделите» их между разными версиями одного и того же.

...