Client to Server support in Mastodon

This topic is to shed a light on #software:mastodon 's abilities to work with #activitypub:c2s clients. Maybe someone has more info on supported C2S API, knows better on what we can or cannot expect in the upcoming Mastodon releases.

My experience is below. You can check yourself using the latest #software:andstatus beta builds from here: https://github.com/andstatus/andstatus/issues/456

While experimenting #activitypub:c2s between #software:andstatus client and #software:pleroma server I started to receive Activities, created by Actors, having IDs at non-Pleroma hosts.
Client app cannot know if any concrete server supports #activitypub:c2s protocol or not, so it requests Actor’s profile from the Actor’s host (using Actor’s id) and fails or succeeds depending on the protocol’s support by that server.
And I was surprised that I’m getting valid ActivityPub responses from Mastodon servers. I can get Actor and Actor’s endpoints, and some of that endpoints work also: outbox, following, followers.
I even managed (using hackish way…) to login to Mastodon server as to “ActivityPub” type Social network (i.e. as if it really supports #activitypub:c2s), but “inbox” and posting new activities don’t work (I’m getting 404 Not found error).

Is the C2S support in Andstatus in a state that one could test against it? Some time in the future we will support it in Friendica as well, I guess. So it would be great to code against something existing.

@heluecht AndStatus supports Pump.io since 2013, and what we currently know as ActivityPub is quite close to it. So I started ActivityPub implementation based on already working code.
This is why we now have in AndStatus #activitypub:c2s features, that weren’t even tested on real servers (because I don’t know such servers…). And this is why I found #activitypub:c2s features in Mastodon that I didn’t even expect.
So I mean that yes, #software:andstatus can really be used to test ActivityPub implementations.

We have, in particular, logging of network level JSON messages (in separate files, conveniently named…). There is Backup/restore feature that allows optionally backup logs also (and analyse them on PC, what I do).
AndStatus has an automated test suite allowing to test it. I think that it may be adapted to add end-to-end tests with real servers…