使用 RestFB 标记(和上传)照片
Tagging (and uploading) a photo using RestFB
以下代码使用 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}]")
);
效果很好。但是,我觉得倒数第二行有龙,我想用一个变量tags
替换"[{\"tag_uid\":\"myID\", \"x\" : 0.0, \"y\" : 0.0}]"
,定义如下:
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 错误吗?还是我做错了什么?
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 文档中明确说明。
以下代码使用 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}]")
);
效果很好。但是,我觉得倒数第二行有龙,我想用一个变量tags
替换"[{\"tag_uid\":\"myID\", \"x\" : 0.0, \"y\" : 0.0}]"
,定义如下:
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 错误吗?还是我做错了什么?
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 文档中明确说明。