如何为社交分享设置angularjs单页面应用程序

时间:2017-04-28 07:47:58

标签: angularjs html5 facebook express

我正在尝试使用Express.js和AngularJS设置SPA的社交分享。 事实是,我想分享动态内容,所以我使用angular-facebook-factory来获取facebook按钮。按钮工作,参数设置,只是我传递的图像,标题和描述参数永远不会到Facebook分享弹出屏幕。

$scope.shareEvent = function (event) {
        console.log('verify values: ', event.image); // works fine!
        FacebookService.share({
            href: 'http://www.example.com/event/'+event_id+'/', // this value is passed
            title: event.title, // Not shown
            description: event.desc, // Not shown
            image: event.image // Not shown
        }, function (response) {
            $scope.me = response;
            $scope.status = true;
        })
    }

FB共享从http://www.example.com/加载默认值(如和)并使用set href param(http://www.example.com/event)。我尝试了方法:'feed',但没有成功。 我应该在页面上有几个不同的共享按钮,所以我猜meta og标签不会这样做...

这是带有ui-view数量的SPA,使用html5的ui-router工作正常,一切正常。

1 个答案:

答案 0 :(得分:1)

这是因为Facebook抓取工具无法呈现javaScript!

在SEO集成方面,Angular JS不太友好。

审核您的代码:

$scope.shareEvent = function (event) {
        console.log('verify values: ', event.image); // works fine!
        FacebookService.share({
            href: 'http://www.example.com/event/'+event_id+'/', // this value is passed
            title: event.title, // Not shown
            description: event.desc, // Not shown
            image: event.image // Not shown
        }, function (response) {
            $scope.me = response;
            $scope.status = true;
        })
    }

you said console.log(event.image);  / Works fine 
  

原因是相同的,您的浏览器能够呈现JavaScript。但   Facebook抓取工具无法处理该javaScript。