Is there a way to get the publish service from a published photo?
I mean other than by inspecting every published photo in every published collection...
Undocumented method or member?
I think the best you could do is:
publishedPhoto:getPhoto():getContainedPublishedCollections()
to get all publishedCollections that contain the underlying photo. But then you'd have to iterate through those publishedCollections to get all their publishedPhotos to see if they actually contained the desired publishedPhoto (they may not).
If you're doing this for multiple publishedPhotos, caching the results of publishedCollection:getPublishedPhotos() would probably ensure that performance is acceptable.
The publish APIs do seem somewhat incomplete. There have been a number of threads in the past about similar missing capabilities, e.g. see:
North America
Europe, Middle East and Africa
Asia Pacific