1

我正在使用提要对话框,并且我正在尝试使用的图片未显示。该对话框出现正确的描述和标题,但没有图片。Facebook Feed对话框不显示图片

这里是我的javascript:

FB.ui(
    { 
    method: 'feed', 
    name: message, 
    description: "...", 
    caption: "...", 
    link: "http://our_domain.com", 
    picture: "https://picture_stored_on_aws" 
    }, 
    (response) -> 
    window.close() 
) 

但是,它的工作原理,当我在其他地方使用存储,像Facebook的开发站点此示例图片:“http://fbrell.com/f8.jpg”。

我试着删除https,仍然没有图片。任何人都遇到过这个问题?它是否与在aws上引用图片有关?

+0

您可以将原始文件夹中的样本文件的URL放在同一个S3存储桶中吗?原始文件是否存在于S3中? – j0nes

+0

是的。这里是:https://rendezgroup-dev.s3.amazonaws.com/uploads/event/image/52/thumb_pic.jpg?AWSAccessKeyId=AKIAJN5OQTDUW77YKBMQ&Signature=h7PkBVTb5of8J8DvlWPGZGyGqJI%3D&Expires=1350549902。 –

+0

所以它看起来像这个网址有一个到期。其中一个参数是'过期'。我想知道这与它有什么关系。有没有办法从s3中获取图像而没有过期? –

回答

1

如你发现,则在S3中接收的链路具有过期,因为该文件不可用于公众,只为您自己的帐户。您必须公开您的图片才能在Facebook Feed对话框中使用它。

登录AWS控制台,转到S3,找到并单击要使用的文件,单击右上角的“属性”按钮。您将在页面底部看到一个窗口。点击“权限”选项卡,确保“每个人”都有“打开/下载”权限。当您切换回“详细信息”选项卡时,您将看到一个公开的链接。有了这个图片链接,图片也应该显示在你的Facebook Feed对话框中。

+0

我这样做了,但它仍然没有工作,因为从S3中获取图像仍然给了我的图像的URL与到期。为了使它起作用,我解析了url以摆脱所有参数('?'之后的所有内容,包括过期以及访问密钥和签名)。该图像是公开的,所以不再需要参数,但它们阻止将图片加载到Facebook提要对话框中。 –

1

这可能是使用的HTTPS,测试与HTTP阵列图像URL

FB.ui(
    { 
    method: 'feed', 
    name: message, 
    description: "...", 
    caption: "...", 
    link: "http://our_domain.com", 
    picture: "http://picture_stored_on_aws" 
    }, 
    (response) -> 
    window.close() 
) 
+0

我试过了,它仍然没有显示。 –

1

我遇到了与使用S3Boto后端的Django存储完全相同的问题。有什么解决的,如果我是删除所有GET参数,因此,如果您原来的产生S3链接是:

https://[your account].s3.amazonaws.com/yourpic.jpg?Signature=[...]&Expires=[...]&AWSAccessKeyId=[...]

您需要将其解析到:

https://[your account].s3.amazonaws.com/yourpic.jpg

这为我工作,我希望它能帮助别人。