Facebook Feed对话框未显示图片

时间:2012-10-18 06:32:35

标签: facebook facebook-graph-api amazon-s3 amazon-web-services facebook-javascript-sdk

我正在使用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上的图片有什么关系吗?

3 个答案:

答案 0 :(得分:1)

可以使用 https ,在数组中使用 http 图片网址进行测试

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

答案 1 :(得分:1)

正如您所发现的那样,您在S3中收到的链接已过期,因为该文件不适用于公众,仅适用于您自己的帐户。您必须公开您的图片才能在Facebook Feed对话框中使用它。

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

答案 2 :(得分:1)

我在使用带有S3Boto后端的Django-storage时遇到了完全相同的问题。如果我删除了所有GET参数,那么解决了原因,如果原始生成的S3链接是:

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

你需要解析它:

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

这对我有用,我希望它可以帮助别人。