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

How can I share an image on Facebook using FB.ui feed dialog?

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

  1. 用图片分享消息
  2. 当 link 被分享时,有一个回调函数来注册(这给了用户积分)。

代码有效。显示带有正确图像和文本的对话框,posted 时调用回调。

问题是:当我去 Facebook 时,post 没有任何图像。

这是脚本:

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, all hosted on my website, not on Facebook's CDN)。它们都显示在对话框中,但不会显示在 Facebook 上。

在我最近的尝试中,我尝试在提要对话框和共享的 URL 的 og:image 标签上使用相同的图像(具有相同的 URL),但仍然没有。

可能是什么问题?

您必须删除源参数。

您应提供的要求:

    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 中试用


这是 Facebook 中的结果:

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

图片 参数不再可用。现在已弃用。 现在我们不能使用 feed 来 share 图片。

Insetead 使用 FB.ui share 方法与 href = "Image URL"