用户无法仅在其个人资料上直接共享到其Facebook页面

时间:2018-07-06 00:01:22

标签: javascript facebook share

我可以通过以下方式允许我的用户将动态内容从我们的网站共享到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) {

    });

该窗口为我提供了来自meta标签的默认图像

Share 2

我可以在哪里更改要共享的表格,个人资料或我管理的任何页面

谁能给我一条道路?谢谢!

1 个答案:

答案 0 :(得分:1)

method: 'share_open_graph',

Open Graph故事是用户 只能发布的内容,而页面则无法发布。 OG故事的目的是让用户现在让其他人知道他们当前正在执行什么活动,而页面却不是人。

  

我尝试了一种不同的方式来共享内容,但是使用此选项似乎无法动态更改图像

在共享时动态指定这些参数中的任何一个的可能性已被删除,这是与“假新闻”作斗争的一部分。

现在唯一的方法是,如果要发布到首先声明了内容所有权的页面,请参见https://developers.facebook.com/docs/sharing/domain-verification
但是,我认为即使那样也意味着您需要通过API将这些帖子发布到您作为管理员的页面上-我认为“共享或订阅源”对话框无法动态处理此问题;他们将不得不根据用户选择共享的位置在“静态”和“动态”预览之间进行切换,而这根本没有实现AFAIK。

除此之外,您唯一的选择是在服务器上创建单个URL,这些URL在请求时返回所需的OG元数据集。如果您需要使用不同的预览内容共享同一内容,则可以创建多个此类URL,然后将跟随这些链接的访问者重定向到“主要” URL。如果您走这条路,则必须知道,尽管这些不同URL的喜欢和共享也将被单独计算,所以您可以有效地将它们“分割”在同一事物的不同版本之间。