My friend is working on adding ActivityPub support to his blog platform (BDServer) so people can follow/comment from Mastodon, Lemmy, etc.

Current status: Lemmy and Misskey can find and follow his account (@[email protected]), but Mastodon can’t find it at all, even though he sees proper ActivityPub requests hitting his server.

The technical details are pretty gnarly - RSA signature verification, HTTP header recreation, multi-threading issues. He wrote up the full journey here: Please Help Me With Activity Pub

If anyone has ActivityPub experience or wants to take a look at the code (Python), we have a Matrix room for BDServer development. Any insights on why different platforms behave differently would be super helpful.

https://matrix.to/#/#bdserver:tchncs.de

Source code: ActivityPub.py

  • flamingos-cant@feddit.uk
    link
    fedilink
    English
    arrow-up
    3
    ·
    edit-2
    2 days ago

    I’m not the most knowledgeable about Mastodon’s APub implementation, but having a look at the Actor of that profile, it might be because it’s invalid JSON-LD. Now, Mastodon doesn’t actually do proper JSON-LD checks, you can follow PieFed profiles from Mastodon and they don’t produce proper JSON-LD, but they do include "https://w3id.org/security/v1" in their @context, and doing a code search of Mastodon’s source code does show some checks for if that’s included.

    Lemmy’s I am familiar with and irrc it doesn’t even check if @context is present.

      • flamingos-cant@feddit.uk
        link
        fedilink
        English
        arrow-up
        1
        ·
        23 hours ago

        I don’t know if somethings changed, but it actually doesn’t. This lines would need to be WithContext<SharedInboxActivities>> for that to be the case, and just to make sure I tested against a local running main and was able to send activities to it without the @context just fine.