Facebook分享:来自' feed'到&share; share_open_graph'

时间:2014-08-06 04:05:05

标签: facebook angularjs sharing facebook-graph-api-v2.0

我正在使用Angular应用程序,为了说明我没有使用任何元标记,我怎么说,如何使用Share Dialog让用户共享页面我的应用程序?

使用旧的 Feed对话框有效,但已弃用:

$scope.share = function() {
        FB.ui({
                method: 'feed',
                name: 'This is the name field',
                link: 'The link',
                picture: 'The picture',
                caption: 'The caption',
                description: 'This is the content of the "description" field, below the caption.'
                })
            },
            function(response) {
                if (response && !response.error_code) {
                    console.log('Posting completed.');
                } else {
                    console.log('Error while posting.');
                }
            });
    };

所以尽管这很有效,但我想以同样的方式使用 Share Diolog ,但我并没有把它搞清楚。这是我一直在尝试的,请记住,我是一个新手:

$scope.share = function() {
        FB.ui({
                method: 'share_open_graph',
                action_type: 'og.likes',
                action_properties: JSON.stringify({
                    object: {
                        'title': 'The title',
                        'image': 'An image',
                        'url': $scope.shareUrl,
                        'description': 'This is the description',
                    }
                })
            },
            function(response) {
                if (response && !response.error_code) {
                    console.log('Posting completed.');
                } else {
                    console.log('Error while posting.');
                }
            });
    };

任何提示?

1 个答案:

答案 0 :(得分:0)

简短的回答是你不能,你必须使用OpenGraph元标记。

由于Facebook不了解JavaScript并因此不了解Angular,因此您必须在服务器端检测Facebook的抓取工具并为其呈现静态页面而不是Angular应用程序。

虽然精确的实施方式会因服务器技术的不同而有所不同,但总体思路如下:

  1. 为需要共享的资源设置路线:http://example.com/resources/:id
  2. 寻找用户代理
  3. 如果它是Facebook的抓取工具之一,请获取资源并使用OpenGraph标记和空体渲染简单视图。否则,只需渲染Angular应用程序。
  4. Facebook的抓取工具可用here,目前它们是:

    • facebookexternalhit / 1.0
    • facebookexternalhit / 1.1
    • Facebot