使用RestFB标记(和上传)照片

时间:2015-11-13 09:58:43

标签: 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}]")
);

完美无缺。但是,我觉得在倒数第二行中有有龙,我想将"[{\"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错误吗?或者我做错了什么?

1 个答案:

答案 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文档中明确说明。