A reasonable ActivityPub / ActivityStreams API to schedule something to be posted in the future might be — to HTTP POST something to an account's outbox with the `published` field set to a date-time in the future.
A reasonable ActivityPub / ActivityStreams API to schedule something to be posted in the future might be — to HTTP POST something to an account's outbox with the `published` field set to a date-time in the future.
Currently, the way I am determining if content is valid ActivityPub / ActivityStreams content is —
№1:
Determining if it is valid JSON.
№2:
Checking if it has a "type" field.
And that is it.
Dealing with JSON-LD would be easier in many ways if everything was defined inline.
Rather than having to get the content from a URL in the context, parse it, etc.
"Activities addressed to this special [public address] URI shall be accessible to all users, without authentication."
https://www.w3.org/TR/activitypub/#public-addressing
The "public address" is:
https://www.w3.org/ns/activitystreams#Public
(Yes, I am posting this for a reason.)
2/
I think there is a need for a "dumb" document format.
HTML is no longer that.
Markdown probably isn't it.
No one really uses enriched-text (IETF RFC 1896).
(I prefer wiki like formats, for various reasons, but —)
I don't think there is an obvious choice for a "dumb" document format, right now.
1/
I think HTML being the default content type for ActivityPub / ActivityStreams is unfortunate in some ways.
HTML was originally a "dumb" document format. But, it is now a "smart" application format — with privacy & security concerns.
https://mastodon.social/@reiver/108237663610634862
You should NOT just take whatever HTML is in the 'content', and put it in the web-browser to view it.
You have to sanitize it. Or, render (unsafe) HTML to (safe) HTML.
Previews in ActivityPub / ActivityStreams is what should bind the disparate software and user-experiences on the Fediverse.
Not the ActivityStreams 'Note'.
...
Previews using 'icon', 'image', 'name', 'summary', etc.
3/
A good file-extension for ActivityPub / ActivityStream files might be:
.activity
And maybe also:
.jsonactivity
Those could be used to trigger a web-server to respond with the Content-Type "application/activity+json".
.
2/
.json isn't sufficient, since it would produce a Content-Type of "application/json" rather than "application/activity+json".
ActivityPub / ActivityStream files need their own file-extension.
...
1/
A file-extension for ActivityPub /ActivityStream files.
...
On many web-servers, the Content-Type returned when serving a file is based on the file-extension of the file.
Ex: .txt for text files, .gz for gzip files, .gmni for gemtext files, etc.
I am not aware of a widely used file-extension for ActivityStreams / ActivityPub files.
...
4/
This needs some testing to see what extant Fediverse software actually does.
For example — with the extant Fediverse software —
Does the avatar image, the (actor) name, etc show up with the post?
Does the post show up?
Etc?
3/
Now, this would probably break like counts, share counts, a replies to some degree.
But, if you didn't care about that, I think it should work.
...
2/
For example, at:
http;//example·com/object/123
You might have the activity-JSON (application/activity+json):
{
....
"attributedTo": "https;//mastodon·social/users/reiver",
...
}
I.e., a Note or Article or whatever is saying that the author is NOT an actor on the same server host (example·com), but an actor over on the server host mastodon·social.
...
1/
You could have a post on one server host attribute and account on another server host as its author.
All you have to do is set the "attributedTo" field appropriately.
https://www.w3.org/TR/activitystreams-vocabulary/#dfn-attributedto
For example....
Is SpaceBar adding AcitivtyPub support?
SpaceBar (formlery called "Fosscord") is an open-source alternative to Discord.
https://github.com/spacebarchat
3/
ActivityPub & ActivityStreams are based on JSON-LD — a format that is not (non-programmer) human-legible & human-writable
Maybe we need an alternative way of encoding ActivityPub & ActivityStreams in situations where (non-programmer) humans might read it or write it
Maybe the INI file data format? Or something else that is friendly to (non-programmer) humans?
2/
I agree that an open protocol is better and more important than just an application.
But I also think that an open file data format is better and more important than just an open protocol.
I.e.,:
file data format ≫ protocol ≫ app
...
1/
JSON-LD is not (non-programmer) human-legible format because — JSON is not (non-programmer) human-legible format.
JSON-LD and JSON are both also not (non-programmer) human-writable.
...
What if a (new type of) Fediverse server automagically created an ActivityPub actor for each hash-tag.
So, for example, if someone on the server used:
⋕banana
(Then if the domain of the server is "example.com") then we would automagically have the actor:
@banana@example·com
Probably a group actor.
And it boosted any local post with that hash-tag.
Then you could follow a hash-tag on a server.
ActivityPub outboxes are the new RSS / Atom / WebFeed.
You can just read from them to get a JSON feed of someone's posts.
I.e., you do NOT have to implement the full suite of Fediverse protocols, or Follow, or run your own server, or anything else to get someone's posts on the Fediverse — just read from their outbox.