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 (@blenderdumbass@blenderdumbass.org), 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

    • Blender Dumbass
      link
      fedilink
      English
      313 days ago

      Seems like somebody mentioned the account on the fediverse that started a chain reaction of various instances requesting a bunch of stuff. Which made it to Mastodon.social too. It still doesn’t work though.

      The server is written in python and the idea is to make it deploy-able without needing to install anything extra. So I’m trying to implement my own activity pub.

  • flamingos-cant
    link
    fedilink
    English
    5
    edit-2
    13 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
        link
        fedilink
        English
        112 days 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.

  • irelephant [he/him]
    link
    fedilink
    English
    4
    edit-2
    8 days ago

    I just took another look at it,

    Comparing it to another random note, the to and cc fields are supposed to be arrays, rather than just a string.

    Its also missing a url field, which is supposed to link to the user-facing url of the post.

    cc: @blenderdumbass@lm.madiator.cloud