如何使用FB.ui提要对话框在Facebook上共享图像?

时间:2016-01-13 13:12:30

标签: javascript facebook facebook-graph-api fb.ui

我有这个脚本,我用我的用户在Facebook上分享我的网站的URL。我使用FB.ui的提要对话框,因为我需要完成两件事:

  1. 与图片共享消息
  2. 在共享链接时有一个回调函数来注册(这会给用户提供信用)。
  3. 代码有效。将显示对话框,其中包含正确的图像和文本,并且在发布时会调用回调。

    问题是:当我去Facebook时,帖子没有任何图片。

    这是剧本:

    var Listen = {
    
        [...]
    
        share_fb: function() {
            var self = Listen;
            var msg = 'I just voted "' + self._song.name + '" by ' + 
                    self._song.artist + ' to win a ' + self._song.prize + 
                    ' on My Website.';
            FB.ui(
                {
                    method: 'feed',
                    name: 'Come Listen to this Song',
                    link: url_base + '/listen',
                    picture: self._song.share_img,
                    source: self._song.media,
                    caption: 'mywebsite.com',
                    description: msg,
                    message: msg
                },
                function(response) {
                    if (response && response.post_id) {
                        self.register_share('facebook');
                    } else {
                        console.log("Post not shared");
                    }
                }
            );
        }
    
        [...]
    };
    

    我尝试过使用不同的图片(PNGs and JPGs,所有图片都在我的网站上托管,not on Facebook's CDN)。它们都显示在对话框中,但它们不会显示在Facebook上。

    在我最近的尝试中,我尝试在Feed对话框和共享的网址的og:image标记上使用相同的图片(使用相同的网址),但仍然没有。

    可能是什么问题?

3 个答案:

答案 0 :(得分:6)

您必须删除源参数。

您应提供的要求:

    FB.ui(
        {
            method: 'feed',
            name: 'Come Listen to this Song',
            link: url_base + '/listen',
            picture: self._song.share_img,
            caption: 'mywebsite.com',
            description: msg,
            message: msg
        },

摘要

单击此图像在Graph Explorer中尝试 Parameters

在这里你可以看到Facebook的结果:

Result

答案 1 :(得分:1)

图片参数不再可用。现在已弃用。 现在我们无法使用Feed来分享图像。

使用带有href =“Image URL”

的FB.ui共享方法

答案 2 :(得分:0)

当你搜索fb ui和图像问题时这个问题出现在顶部,我的问题是你不能在图像中有ssl url,所以不要添加https url,它必须是http。 Facebook代理向用户显示的图像请求,因此即使您从非SSL网址提供服务,Facebook中使用的图像也会通过SSL覆盖用户。