我有一个用例来获取现有的 share
来自fb graph api的消息元数据,我正在使用这些字段 fields=updated_time,messages{message,id,created_time,from,to,tags,attachments,shares{id,link}
现有实现:用于此urlhttps://graph.facebook.com/v5.0/me/conversations?fields=updated_time,messages{message,id,created\u time,from,to,tags,attachments,sticker}我们在buildermap中插入值,如下所示
builderMap.put("message,id,created_time,from,to,tags,attachments,sticker",
"{message,id,created_time,from,to,tags,attachments,sticker}");
UriBuilder builder = new DefaultUriBuilderFactory(baseURL).builder();
uri = builder.build(builderMap);
webClient.get()
.uri(uri)
.retrieve()
.onStatus(HttpStatus::isError, (clientResponse) -> {
return this.handleError(clientResponse, errorType, exceptionTransformer);
}).bodyToMono(responseType).block();
新实施:
uriBuilderMap.put("message,id,created_time,from,to,tags,attachments,sticker,shares{id,link}","{message,id,created_time,from,to,tags,attachments,sticker,shares{id,link}}");
uriBuilderMap.put("id,link", "{id,link}");
UriBuilder builder = new DefaultUriBuilderFactory(baseURL).builder();
uri = builder.build(builderMap);
webClient.get()
.uri(uri)
.retrieve()
.onStatus(HttpStatus::isError, (clientResponse) -> {
return this.handleError(clientResponse, errorType, exceptionTransformer);
}).bodyToMono(responseType).block();
例外情况:
java.lang.IllegalArgumentException: Map has no value for 'message,id,created_time,from,to,tags,attachments,sticker,shares{id,link'
at org.springframework.web.util.UriComponents$MapTemplateVariables.getValue(UriComponents.java:345)
at org.springframework.web.util.HierarchicalUriComponents$QueryUriTemplateVariables.getValue(HierarchicalUriComponents.java:1055)
at org.springframework.web.util.UriComponents.expandUriComponent(UriComponents.java:262)
at org.springframework.web.util.HierarchicalUriComponents.lambda$expandQueryParams$5(HierarchicalUriComponents.java:443)
at java.util.Map.forEach(Map.java:630)
如何处理这种嵌套投影 https://graph.facebook.com/v5.0/me/conversations?fields=updated_time,messages{message,id,created_time,from,to,tags,attachments,shares{id,link},sticker}
?
暂无答案!
目前还没有任何答案,快来回答吧!