当我通过
将照片发布到我的墙上时FacebookType publish = fc.publish("me/photos", FacebookType.class,
BinaryAttachment.with(attachmentName, temporaryStream),
Parameter.with("message", "my myssage"));
按预期创建帖子。我可以在消息下看到一条消息和已发布的图片。
但是当我想要做同样的事情但在某些页面墙上而不是用户墙时。
FacebookType publish = fc.publish(pageId + "/photos", FacebookType.class,
BinaryAttachment.with(attachmentName, temporaryStream),
Parameter.with("message", "my myssage"));
帖子已发布,但我只能看到文字。不是图片。只有当我点击帖子的日期时才能看到图片。我也可以点击页面顶部的照片,然后点击页面名称"照片标签。
当我将照片发布到网页上时,有什么方法可以将照片视为帖子的一部分吗?
答案 0 :(得分:4)
你的答案是一种享受,并帮助了我无数的金额,但我发现我的解决方案我不需要
FacebookType post = fc.publish(pageid + "/feed", FacebookType.class,
Parameter.with("message", "your message"),Parameter.with("type", "photo"),
Parameter.with("link", photoLink.getLink()));
因为我会回复一个错误(我应该复制给你看)但photoLink.getLink()
在我的情况下返回null。
所以我更新的解决方案最终成为了
FacebookType photo = client.publish(groupId + "/photos",
FacebookType.class,
BinaryAttachment.with(imageName),
imageAsBytes,
"image/png"),
Parameter.with("message",
message));
只需2美分,再次感谢您的帮助!
修改强>
同时在玩游戏的时候,我注意到在解决方案中,我到达的时候我正在创建一个FacebookType photo
对象,并且这个对象不会在任何地方被使用,你只是调用了进一步创建的客户端的发布方法你的计划。
我的最后一堂课是在下面,(我的申请是从电脑上拍摄一张照片,然后摆成一组墙)
public void createImagePostInGroup(String message, String groupId, String imageFilePath){
byte[] imageAsBytes = fetchBytesFromImage(imageFilePath);
DefaultFacebookClient client =
new DefaultFacebookClient(accessToken, Version.LATEST);
client.publish(groupId + "/photos",
FacebookType.class,
BinaryAttachment.with(imageFilePath.substring(imageFilePath.length()-34),
imageAsBytes,
"image/png"),
Parameter.with("message",
message));
}
我的图像在此方法中转换为字节数组
private byte[] fetchBytesFromImage(String imageFile) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
byte fileContent[] = null;
try{
BufferedImage image = ImageIO.read(new File(imageFile));
ImageIO.write(image, "png", baos);
baos.flush();
fileContent = baos.toByteArray();
}catch (Exception e){
e.printStackTrace();
}
return fileContent;
}
再次感谢您的帮助。
答案 1 :(得分:3)
我终于找到了解决方案。要将带有照片的帖子发布到正常"仅文本的部分"您需要将照片发布到墙上(您的用户墙而不是页面墙),然后获取其链接,最后使用图片链接创建页面的源。
这是示例代码:
FacebookType photo = fc.publish(pageid + "/photos" , FacebookType.class,
BinaryAttachment.with(photoName, photoInputStream));
Link photoLink = fc.fetchObject(photo.getId(), Link.class);
FacebookType post = fc.publish(pageid + "/feed", FacebookType.class,
Parameter.with("message", "your message"),Parameter.with("type", "photo"),
Parameter.with("link", photoLink.getLink()));
编辑:我忘记了一件事。当您稍后删除帖子时,您不会删除照片。要做到这一点,你必须手动完成。