RestFB - 图片网址格式不正确

时间:2013-05-04 21:23:24

标签: facebook-graph-api restfb

我正在尝试使用RestFB在我的脸书页面上发布帖子。

我的代码如下:

FacebookType publishResponse =  facebookClient.publish(pageId + "/feed", FacebookType.class,
                Parameter.with("message", message),
                Parameter.with("picture", picture), 
                Parameter.with("link", link), 
                Parameter.with("description", description));

我的参数具有以下值:

message: Test+test+test
picture: https%3A%2F%2Fcom-smallteaser-local-photo.s3.amazonaws.com%2Fskydivemag%25232fdefcfa-c7b2-4c0d-8504-9942ccd9a4b0%2523648%25230%25232592%25232592%2523292%2523292
link: http%3A%2F%2Flocalhost%3A9000%2Farticle%2F20130503-test-test-test
description: This+is+just+a+test

我得到了例外:

FacebookOAuthException:收到类型为OAuthException的Facebook错误响应:(#100)图片网址格式不正确

我阅读here我可以添加一张只提供网址的图片,并且明确指出它适用于在Amazon S3或类似服务上托管其图片的应用开发者。

知道我做错了吗?

2 个答案:

答案 0 :(得分:0)

我认为它实际上不是图片网址的“格式化”,而是它返回的内容:

https://com-smallteaser-local-photo.s3.amazonaws.com/skydivemag%232fdefcfa-c7b2-4c0d-8504-9942ccd9a4b0%23648%230%232592%232592%23292%23292

附带Content-Type: application/octet-stream响应标头(as you can see here) - 这可能会让Facebook刮刀认为这不是真正的图像资源。

因此,您必须弄清楚如何配置托管空间以使用正确的Content-Type投放这些图片,例如img/jpegimg/png

答案 1 :(得分:0)

我遇到了这个问题,但仅限于较旧的Android设备,而不是桌面设备。我可以在服务器日志中看到存在差异:

  • 访问桌面上的网址时,Facebook 请求图片网址。
  • 访问较旧的Android设备上的网址时,Facebook 不会请求图片网址。

事实证明我在构造绝对URL时使用window.location.origin,根据http://www.hyperink.com/blog/?p=18,它仅适用于Webkit。正如帖子建议的那样,它通过替换来解决,

window.location.origin

通过

window.location.protocol + “//” + window.location.hostname