To follow up on my #ActivityPub C2S post from a few days ago, I wrote a blog article on my thoughts about improving the C2S protocol and a description of some related experimentation I've been doing.
-
@steve (how) can I test Flowz?
I would love to implement C2S in WordPress and need a test client https://github.com/Automattic/wordpress-activitypub/pull/2851
@pfefferle if you're satisfied with using a CLI tool, you can try the client I created for GoActivityPub based servers: https://git.sr.ht/~mariusor/box
It supports OAuth2 dynamic client creation either with CIMD or with RFC7591
It supports creating activities for publishing text content and some basic loading of information about ActivityPub objects.
In the near future it will also support proxyUrl to interact with secure fetch servers, but not just yet.
-
@pfefferle if you're satisfied with using a CLI tool, you can try the client I created for GoActivityPub based servers: https://git.sr.ht/~mariusor/box
It supports OAuth2 dynamic client creation either with CIMD or with RFC7591
It supports creating activities for publishing text content and some basic loading of information about ActivityPub objects.
In the near future it will also support proxyUrl to interact with secure fetch servers, but not just yet.
@pfefferle also perhaps @django will be interested in collaborating. He's the latest to try to implement clients for C2S, and I imagine WordPress would be a sweet, sweet target for him.
-
@steve (how) can I test Flowz?
I would love to implement C2S in WordPress and need a test client https://github.com/Automattic/wordpress-activitypub/pull/2851
@pfefferle I haven't been working on Flowz for the last 6 or 7 months, but I plan to dust it off and continue work on it given the recent interest in the ActivityPub client API. I subscribed to the github issue and will track that. Is the WP implementation ready for testing?
-
@pfefferle I haven't been working on Flowz for the last 6 or 7 months, but I plan to dust it off and continue work on it given the recent interest in the ActivityPub client API. I subscribed to the github issue and will track that. Is the WP implementation ready for testing?
@steve nice!
I think the PR is at least ready for a test run!
-
@pfefferle also perhaps @django will be interested in collaborating. He's the latest to try to implement clients for C2S, and I imagine WordPress would be a sweet, sweet target for him.
-
@pfefferle if you're satisfied with using a CLI tool, you can try the client I created for GoActivityPub based servers: https://git.sr.ht/~mariusor/box
It supports OAuth2 dynamic client creation either with CIMD or with RFC7591
It supports creating activities for publishing text content and some basic loading of information about ActivityPub objects.
In the near future it will also support proxyUrl to interact with secure fetch servers, but not just yet.
-
@pfefferle that seems like a weird ask for a client you want to prototype with, but indeed, BOX does not support PKCE yet.
-
@pfefferle that seems like a weird ask for a client you want to prototype with, but indeed, BOX does not support PKCE yet.
@mariusor I worked against https://github.com/swicg/activitypub-api
-
@steve nice!
I think the PR is at least ready for a test run!
@pfefferle I did some
initial testing of the Wordpress C2S support
and left some comments on the github issue. -
@pfefferle I did some
initial testing of the Wordpress C2S support
and left some comments on the github issue.@steve awesome, thanks!
-
@mariusor I worked against https://github.com/swicg/activitypub-api
@mariusor when box tries to dereference an Activity, can you maybe add the `application/activity+json` header to the request?
-
@mariusor when box tries to dereference an Activity, can you maybe add the `application/activity+json` header to the request?
@pfefferle that should already be the case. How does the accept header look like for you on the server? I'll double check tomorrow if I'm doing something stupid and haven't noticed until now.

-
@pfefferle that should already be the case. How does the accept header look like for you on the server? I'll double check tomorrow if I'm doing something stupid and haven't noticed until now.

@mariusor it seems to be a different issue!
(I am not very familiar with go, so please don't blame me if what I say is totally wrong)
I think box is checking for an Actor object and if it finds only a URI, it simply assumes that the Outbox is `{profile-id}/outbox` instead of checking for the real outbox URL!?
-
@mariusor it seems to be a different issue!
(I am not very familiar with go, so please don't blame me if what I say is totally wrong)
I think box is checking for an Actor object and if it finds only a URI, it simply assumes that the Outbox is `{profile-id}/outbox` instead of checking for the real outbox URL!?
@pfefferle yes, that might be possible. BOX is strongly biased with the conventions of GoActivitPub where actorIRI/outbox is most of the time a safe assumption to make.
But there are mechanisms to dereference the oubox correctly after loading an Actor object, and usually I default to that, the "just append outbox to the URL" logic is a last resort.
Do you think you can send an email to the GoActivityPub mailing list with details about your issue, so I can try to find where exactly this happens? TY
Just click new post on this page: https://lists.sr.ht/~mariusor/go-activitypub-dev
-
@pfefferle yes, that might be possible. BOX is strongly biased with the conventions of GoActivitPub where actorIRI/outbox is most of the time a safe assumption to make.
But there are mechanisms to dereference the oubox correctly after loading an Actor object, and usually I default to that, the "just append outbox to the URL" logic is a last resort.
Do you think you can send an email to the GoActivityPub mailing list with details about your issue, so I can try to find where exactly this happens? TY
Just click new post on this page: https://lists.sr.ht/~mariusor/go-activitypub-dev
@pfefferle I changed some stuff to a potential place where this could have happened.
If you can build a new version of BOX, please try again and let me know if it fixes the issue for you.
-
@pfefferle I changed some stuff to a potential place where this could have happened.
If you can build a new version of BOX, please try again and let me know if it fixes the issue for you.
@mariusor it seems to work now! awesome!
-
@pfefferle I changed some stuff to a potential place where this could have happened.
If you can build a new version of BOX, please try again and let me know if it fixes the issue for you.
-
@pfefferle love it!
GoActivityPub doesn't really do "scopes" because I couldn't think of a way store the permissions on the server side in a way that doesn't require custom logic to interact with vanilla ActivityPub objects.
-
@pfefferle love it!
GoActivityPub doesn't really do "scopes" because I couldn't think of a way store the permissions on the server side in a way that doesn't require custom logic to interact with vanilla ActivityPub objects.
@mariusor yea, I think the scopes and the PKCE part was the issue!
but finally...

-
@pfefferle love it!
GoActivityPub doesn't really do "scopes" because I couldn't think of a way store the permissions on the server side in a way that doesn't require custom logic to interact with vanilla ActivityPub objects.
@pfefferle if I'd come up with a scheme for them they would be related to pairs of activityType:objectType entries (instead of a global write), or maybe just the activityType
Ie, Create:Note, Create:Image, Undo, Delete.


