我需要使用未知数量的参数执行发布方法。每个附件都需要使用...添加
Parameter.with("attached_media[i]", ...
但附件的数量可以改变。如何在此调用中动态添加参数?
GraphResponse publishMessageResponseMSg =
facebookClient.publish("me/feed", GraphResponse.class,
Parameter.with("message", msg),
Parameter.with("published", "false"),
Parameter.with("scheduled_publish_time", timeStampStr),
Parameter.with("attached_media[0]", "{\"media_fbid\":\""+ publishMessageResponseImg1.getId() +"\"}"),
Parameter.with("attached_media[1]", "{\"media_fbid\":\""+ publishMessageResponseImg2.getId() +"\"}"));
publish
方法即可。
// create ArrayList with Parameter objects
List<Parameter> paramList = new ArrayList<>();
paramList.add(Parameter.with("message",msg));
paramList.add(Parameter.with("published","false"));
paramList.add(Parameter.with("scheduled_publish_time",timeStampStr));
for (int i=0; i < 5; i++) {
paramList.add(Parameter.with("attached_media["+ i +"]",FileFactory.getFileJson(i));
}
// convert List to array
Parameter[] params = list.stream().toArray(Parameter[]::new);
// publish everything
GraphResponse publishMessageResponseMSg =
facebookClient.publish("me/feed", GraphResponse.class, params);