Следующий код загружает помеченную фотографию в Facebook с RestFB:Tagging (и загрузки) фото с помощью RestFB
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? Или я делаю что-то неправильно?
Я согласен с тем, что * Тип 'Photo.Tag' используется для получения информации от Facebook, *, но это не обязательно означает, что' Photo.Tag' не предназначен для отправки информации в Facebook. Поскольку полученные данные должны быть такими же, как отправленные данные. В частности, когда я получаю тег из Facebook, я ожидаю, что он будет иметь тип 'MyPhotoTag', а не' Photo.Tag'. Может, я что-то упустил? – user2768
Json, полученный от Facebook, отличается от Json, который вы должны отправить в Facebook. Таким образом, они не одни и те же объекты, они очень похожи. Сам объект не может знать, используется ли 'id' или' tag_uid', мы должны предоставить некоторые утилиты, но atm это самый простой способ решить текущую ситуацию. – Norbert