Facebook无法在动态发布中显示链接图片

5
需要一种方法使Facebook在动态发布中呈现图像。 有时,您只需要复制和粘贴图像链接,就像这样:Working rendered image in Facebook wall post 但是,对于我需要链接到的那些位于S3上的图像,我会得到这个:Image link not being rendered in Facebook wall post 您可以单击此处来验证第二个链接实际上是一个有效的图像地址(您应该会看到一个可怕的手绘笑脸)。
我仅使用网站上的常规Facebook GUI进行了此测试,但我将在我的应用程序中使用此问题的答案,该应用程序通过Open Graph API与Facebook集成。(如果有人认为这个问题与编程无关)。
谁知道我需要做什么才能让第二张图像在帖子中呈现?
2个回答

1

我猜只有静态链接才能在Facebook上为帖子生成缩略图。您正在尝试使用的链接不是静态链接。

这就是Facebook在尝试生成缩略图时得到的结果。

<Error>
<SCRIPT/>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>D577337ADC9FA36A</RequestId>
<HostId>
DN9BnBduVLgHbf2lONA+e/fXQIOuT7W3WOFUPdthdpP2MZQhSLlolTvyJ0t9eZXn
</HostId>
</Error>

解决方案:

事实证明,要使其正常工作,您不能仅将任意子域映射到任意存储桶。完全限定的子域名必须与 S3 存储桶名称相同。

  1. 假设您的站点名称为 static.mydomain.com。然后,您需要创建一个同名的 S3 存储桶,命名为 static.mydomain.com。

  2. 一旦您将该存储桶配置为 S3 静态网站,它将被分配一个 URL,类似于 http://static.mydomain.com.s3-website-us-east-1.amazonaws.com

  3. 转到您的域主机并将您的子域映射到步骤 2 中的 URL。在 enom.com 中,这意味着将主机“static”映射到地址“static.mydomain.com.s3-website-us-east-1.amazonaws.com”作为 CNAME 记录。

来源它将帮助您从 S3 帐户托管静态站点。使用来自该自定义域 URL 路径的图像。那样会起作用。


看起来你的指示和源代码中的指示都是关于将某个域名映射到Amazon S3存储桶。我不需要这样做——我不在乎URL最终看起来像什么。鉴于我不在乎图像URL是什么,我需要做什么?将我的存储桶配置为Amazon托管的静态网站,并使用基于其端点的URL,是否会使我的URL“静态”? - Clay Wardell
更新--我将我的S3存储桶配置为托管的静态网站,并获得了与之前相同的结果--即使使用基于dotellapptest.s3-website-us-east-1.amazonaws.com的新链接。 - Clay Wardell

1
关键在于图片大小。不要问我魔法数字是多少,但较大的图像有效,而较小的则无效。可能是因为它必须比 Facebook 使用的预览大小更大。
在我的测试中,我关闭了静态网站配置。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接