以下代码使用RestFB 将标记的照片上传到Facebook:
URL url = new URL("http://....");
facebookClient.publish(
"me/photos",
Photo.class,
BinaryAttachment.with("file.jpg", url.openStream()),
Parameter.with("tags", "[{\"tag_uid\":\"myID\", \"x\" : 0.0, \"y\" : 0.0}]")
);
完美无缺。但是,我觉得在倒数第二行中有有龙,我想将"[{\"tag_uid\":\"myID\", \"x\" : 0.0, \"y\" : 0.0}]"
替换为如下定义的变量tags
:
Photo.Tag tag = new Photo.Tag();
tag.setId("myID");
tag.setX(0.0);
tag.setY(0.0);
List<Photo.Tag> tags = new ArrayList<Photo.Tag>();
tags.add(tag);
但这不起作用。可能是因为android.util.Log.d("", tag.toString())
产生Tag[... id=myID ...]
,
而不是Tag[... id=myID ...]
,即 RestFB正在使用id
而不是tag_uid
似乎是必需的。这是一个RestFB错误吗?或者我做错了什么?
答案 0 :(得分:1)
Photo.Tag
类型用于从Facebook获取信息而不将其发送到Facebook。您应该创建自己的类型:
public class MyPhotoTag {
@Facebook("tag_uid")
private String tagUid;
@Facebook
private Double x;
@Facebook
private Double y;
// add getter and setter here
}
您的代码应该适用于这种新类型。
它不是RestFB错误,但应在RestFB文档中明确说明。