ActivityPub

Aus SELFHTML-Wiki
Wechseln zu: Navigation, Suche

Don't you miss the days when the web really was the world's greatest decentralized network? Before everything got locked down into a handful of walled gardens? So do we.
Enter ActivtiyPub!

Activitypub rocks! - die Startseite des Projekts[1]
ActivityPub logo
ActivityPub ist ein offenes, dezentrales Protokoll für soziale Netzwerke im Fediverse. Es wurde 2018 Standard des W3C.[2]

Es bietet …

  • eine Server-zu-Server-API für eine dezentrale Kommunikation (Federation Protocol) sowie
  • eine Client-zu-Server-API (Social API) zum Erstellen, Hochladen und Löschen von Inhalten

Wie der Name schon vermuten lässt, kann man mit ActivityPub seine sozialen Aktivitäten veröffentlichen in Form von Blog- oder Forenbeiträgen, Beiträgen in sozialen Netzwerken oder Mikroblogging-Diensten, aber z. B. auch als geographischer Standort oder Reiseziel. ActivityPub dient hierbei als Spezifikation für die Interaktion zwischen Client-und-Server und Server-zu-Server.

Mit dezentraler Kommunikation ist bei ActivityPub gemeint, dass es möglich ist, die Inhalte eines sozialen Netzwerkes, Mikroblogs etc. auch aus anderen Netzwerken heraus abzurufen und an diese senden zu können. So kann man von einem Dienst wie Mastodon aus auch andere Dienste im Fediverse nutzen.

Technik

In ActivityPub wird ein Benutzer durch "actors" über die Benutzerkonten auf Servern repräsentiert. Die Benutzerkonten auf verschiedenen Servern entsprechen verschiedenen actors. Jeder actor hat:

  • eine Inbox, um Nachrichten aus der Welt zu erhalten
  • eine Outbox, um Nachrichten an andere zu senden

Infografik über Funktionsweise

In- und Outbox sind eigentlich nur URLs, die in der Activity Streams-Beschreibung des ActivityPub-Akteurs aufgeführt sind. Diese enthält unter anderem Informationen wie den Nutzernamen, den vollen Namen und den Link zur In- und Outbox.

{
"@context": "https://www.w3.org/ns/activitystreams",
 "type": "Person",
 "id": "https://social.example/alyssa/",
 "name": "Alyssa P. Hacker",
 "preferredUsername": "alyssa",
 "summary": "Lisp enthusiast hailing from MIT",
 "inbox": "https://social.example/alyssa/inbox/",
 "outbox": "https://social.example/alyssa/outbox/",
 "followers": "https://social.example/alyssa/followers/",
 "following": "https://social.example/alyssa/following/",
 "liked": "https://social.example/alyssa/liked/"
}


Möchte ein Benutzer etwas an die Außenwelt senden, so postet dieser einen Text, der im Activity Streams 2.0-Format kodiert ist, in seine Outbox. Die Außenwelt kann nun seine Outbox abrufen und den Inhalt lesen. Schreibt ihm jemand eine Nachricht, wird diese in seiner Inbox abgelegt.

Activity Streams

Der Activity Streams 2.0 Standard nutzt selbst ein JSON basiertes Format namens JSON-LD für die Serialisierung.[3]

{
  "@context": "https://www.w3.org/ns/activitystreams",
  "summary": "A note",
  "type": "Note",
  "content": "My dog has fleas."
}


Infografik über Activity Streams



Weblinks

  1. Activitypub rocks! - die Startseite des Projekts
  2. W3C: ActivityPub W3C Recommendation 23 January 2018
  3. Activity Streams 2.0