Facebook 不会在墙贴上呈现链接图片
Posted
技术标签:
【中文标题】Facebook 不会在墙贴上呈现链接图片【英文标题】:Facebook won't render link image on wall post 【发布时间】:2012-12-27 17:47:40 【问题描述】:Facebook 需要一种在墙贴中呈现图像的方法。有时,您只需复制并粘贴图片的链接即可,例如:
但是,我需要链接到 S3 上的图像,我得到了这个:
您可以点击here 来验证第二个链接实际上是一个有效的图片地址(您应该会看到一个令人毛骨悚然的手绘笑脸)。
我只使用网站上的普通 Facebook GUI 进行了此测试,但我将在我的应用程序中使用此问题的答案,该应用程序通过 Open Graph API 与 Facebook 集成。 (以防有人认为这个问题与编程无关)。
有人知道我需要做什么才能在帖子中渲染第二张图片吗?
【问题讨论】:
【参考方案1】:关键是图像大小。不要问我神奇的数字是什么,但较大的图像有效,而较小的则无效。可能是它必须大于 facebook 使用的预览大小。
在我的测试中,我关闭了静态网站配置。
【讨论】:
【参考方案2】:我的猜测是只有 静态链接会为 facebook 上的帖子生成缩略图。您尝试使用的链接不是静态链接。
这是 Facebook 在尝试生成缩略图时得到的结果。
<Error>
<SCRIPT/>
<Code>AccessDenied</Code>
<Message>Access Denied</Message>
<RequestId>D577337ADC9FA36A</RequestId>
<HostId>
DN9BnBduVLgHbf2lONA+e/fXQIOuT7W3WOFUPdthdpP2MZQhSLlolTvyJ0t9eZXn
</HostId>
</Error>
解决方案:
事实证明,要使其正常工作,您不能将任意子域映射到任意存储桶。完全限定子域名必须与 S3 存储桶名称相同。
假设您的站点名称是 static.mydomain.com。那你需要 创建一个具有相同名称的 S3 存储桶,命名为 static.mydomain.com。
将存储桶配置为 S3 静态网站后,它将具有
分配给它的 URL,类似于 http://static.mydomain.com.s3-website-us-east-1.amazonaws.com
。
转到您的域名托管服务商并将您的子域映射到步骤 2 中的 URL。在 enom.com 中,这意味着将主机“静态”映射到地址“static.mydomain.com.s3-website-us-east-1.amazonaws.com
”作为CNAME
记录。
Source,它将帮助您从您的 S3 帐户托管一个静态站点。使用来自该自定义域 URL 路径的图像。这会起作用的。
【讨论】:
您的很多说明以及源代码中的说明似乎都是关于将某个域名映射到 Amazon S3 存储桶。我不需要这样做——我不在乎 url 最终的样子。鉴于我不在乎图片网址是什么,我需要做什么?是否会将我的存储桶配置为 Amazon 托管静态网站,并使用基于其端点的 url,使我的 url 成为“静态”? 更新——我将我的 S3 存储桶配置为托管静态网站并获得了与以前相同的结果——即使使用基于 dotellapptest.s3-website-us-east-1 的新链接也是如此。 amazonaws.com以上是关于Facebook 不会在墙贴上呈现链接图片的主要内容,如果未能解决你的问题,请参考以下文章
手动获取文本到墙贴文本区域(使用 FB API 在 facebook 上共享 - Android)
Android Facebook 墙贴 - publish_action 权限未授权