Implement ActivityPub Client-to-Server protocol

Specification. Support existing ActivityPub client AndStatus.

Checklist:

  • MUST present the ActivityStreams object representation in response to application/ld+json; profile="https://www.w3.org/ns/activitystreams"
  • SHOULD present the ActivityStreams representation in response to application/activity+json;
  • (WebFinger protocol) MUST present actor's profile to discover outbox URL via .well-know/webfinger?resource=acct:email@domain;
  • MUST process HTTP POST request to the actor's outbox URL for activity submission which body is either a single Activity or a single non-Activity Object;
    • Create Activity;
    • Update Activity;
    • Delete Activity;
    • Follow Activity;
    • Add Activity;
    • Remove Activity;
    • Like Activity;
    • Block Activity;
    • Undo Activity;
  • (OAuth 2.0 protocol) MUST authenticate submission request with the credentials of the actor to whom the outbox belongs;
  • (IndieAuth protocol, for AndStatus client compatibility) MUST add to token response property me, containing the canonical user profile URI for the user this access token corresponds to;
  • (pump.io protocol, for AndStatus client compatibility) MUST provide the /api/whoami endpoint to return an registered user profile;
  • (Content-addressing) SHOULD support RFC 2169 convention for using HTTP in URN Resolution;
  • (Content-addressing) SHOULD identify content with Magnet URIs;

Additional info:

Edited by rustra