我正在尝试使用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或类似服务上托管其图片的应用开发者。
知道我做错了吗?
答案 0 :(得分:0)
我认为它实际上不是图片网址的“格式化”,而是它返回的内容:
附带Content-Type: application/octet-stream
响应标头(as you can see here) - 这可能会让Facebook刮刀认为这不是真正的图像资源。
因此,您必须弄清楚如何配置托管空间以使用正确的Content-Type
投放这些图片,例如img/jpeg
或img/png
。
答案 1 :(得分:0)
我遇到了这个问题,但仅限于较旧的Android设备,而不是桌面设备。我可以在服务器日志中看到存在差异:
事实证明我在构造绝对URL时使用window.location.origin
,根据http://www.hyperink.com/blog/?p=18,它仅适用于Webkit。正如帖子建议的那样,它通过替换来解决,
window.location.origin
通过
window.location.protocol + “//” + window.location.hostname