Perhaps I misspoke slightly when I said I was reading the sitelinks for a feed. I am looking at the mappings, and if a feed has a valid Sitelink mapping, then I am reading all the feeditems for that feed via FeedItemService.
I am sure there are already some code samples out there for that, but in case it is useful for you, my code reading the feeditems looks like this:
FeedItemServiceInterface feedService = getFeedItemService(acctId);
Selector selector = new Selector();
selector.setFields(new String[] { "FeedId", "FeedItemId", "StartTime", "EndTime", "AttributeValues", "PolicyData", "DevicePreference", "Status", "UrlCustomParameters" });
Predicate pred = new Predicate();
pred.setField("FeedId");
pred.setOperator(PredicateOperator.EQUALS);
pred.setValues(new String[]{<feedid>});
selector.setPredicates(new Predicate[] { pred });
int start = 0;
int pageSize = 5000;
Paging paging = new Paging();
paging.setNumberResults(pageSize);
paging.setStartIndex(start);
selector.setPaging(paging);
FeedItemPage page = feedService.get(selector);
List<com.adlucent.domain.Sitelink> allAdlSitelinks = new ArrayList<>();
if (page.getEntries() == null) {
return allAdlSitelinks;
}
System.out.println("Found "+page.getTotalNumEntries()+" sitelinks");
while (page.getEntries() != null) {
allAdlSitelinks.addAll(asAdlucentSitelinks(acctId, mapping, page.getEntries()));
start = start+pageSize;
paging.setStartIndex(start);
page = feedService.get(selector);
}
return allAdlSitelinks;