Wanted to start a convo with @johnonolan@mastodon.xyz from Ghost and @angus@socialhub.activitypub.rocks from Discourse about AP resource discovery.
A common use case from fediverse users is to be linked out to a site, and attempt to “bring it in” to their local instance/app of choice. This is done by taking the browser URL and pasting it into their site/app’s search bar, or equivalent.
For example:
- Ghost: https://activitypub.ghost.org/warp-factor-5-mr-sulu/
- Discourse: any forum topic
For context, last night I discovered that Ghost’s latest blog post didn’t make it into NodeBB, due to a bug on my end. I attempted to resolve it via URL but there was no AP resource at that URL. I ended up having to query the instance actor (which I happened to already know), and looking at the outbox.
To my knowledge there is no way to find a Discourse post or topic’s AP resource ID without having a local Discourse account.
Would it be possible for you to send back an HTTP 301 Moved Permanently
(or similar) if the Accepts
header contains one of the AP-related types?
N.B. This probably has some overlap with @evan@cosocial.ca’s HTTP Discovery Task Force, a 308 is recommended there.
@julian @johnonolan @angus @evan
Why 301 and not 302?
I am using 302. Probably chose it because everyone else was using it.@silverpill@mitra.social 302/307 is also fine by me. Probably safer from being accidentally cached and may be more appropriate in this situation.
@julian @johnonolan @angus there’s a whole task force for this. You’ve commented on it. Why does this need to be discussed?
@evan@cosocial.ca this was to ask the mentioned parties for Ghost and Discourse to implement.
I mentioned you to keep you in the loop because task forces achieve nothing without implementors doing the work.
Object IDs should really be retrievable by http GET. See section 3.2 of https://www.w3.org/TR/activitypub
@rimu@piefed.social yes, that’s right. I’m specifically referring to object urls though, which tend to be more user facing.
You could save yourself some hassle and make urls and IDs the same value. But you do you :)
@johnonolan@mastodon.xyz A solution is only needed if the resource id is different from the URL (which in Ghost’s case, is true).
You don’t have to use a redirect. If your software is capable of doing it, you can serve the ActivityPub object directly from that route’s controller; that’s what NodeBB does.
@julian If you want to make an issue here about what you’d like to see I’ll make sure the team sees it :)
@julian (Thank you for the ping btw, I appreciate the note - this wasn’t on my radar)
@johnonolan@mastodon.xyz no worries, and thanks! Will do.