Social: Implement Mastodon client API (in addition to ActivityPub) for 3rd party client compatibility

Created on 6 Dec 2018  ·  17Comments  ·  Source: nextcloud/social

As discussed at the hackweek with @juliushaertl @jospoortvliet, it would be cool to implement the Mastodon client API at some point.

This would allow mobile Mastodon clients to connect to Nextcloud Social!

Client applications that are known to work well (list taken from Pleroma readme – thanks!):

  • Twidere
  • Tusky
  • Pawoo (Android + iOS)
  • Subway Tooter
  • Amaroq (iOS)
  • Tootdon (Android + iOS)
  • Tootle (iOS)
  • Whalebird (Windows + Mac + Linux)

🐘🎉☁

1. to develop enhancement

Most helpful comment

It's getting closer and closer to the top of the to-do list

All 17 comments

So, we need to:

  • Check that we can specify a full url (host+path) like: https://nextcloud.example.net/apps/social so that the client will do its request on /apps/social/api/from/mastodon/_
  • move the current API we use between front-end -> back-end from /api/v1/... to something else /local/v1/...

Cool would be also support for the advanced features from Twidere:
https://github.com/TwidereProject/Twidere-Android

Mastodon client-server API are specific to Mastodon. Why not use ActivityPub's client-server protocol instead? It would be better to have generic ActivityPub clients. A Mastodon client instead is expected to be used with Mastodon that has certain features. I don't think you are going to replicate Mastodon's features as a Nextcloud app.

Why not use ActivityPub's client-server protocol instead? It would be better to have generic ActivityPub clients.

@alxlg are there any generic ActivityPub apps? I'm not aware of any, whereas there's 2–3 different Mastodon apps.

With Nextcloud News we alrready made the mistake of not implementing the most used API (of defunct Google Reader).

If there are generic ActivityPub apps, that's cool and they will work with Nextcloud Social anyway. But it also makes sense for us to support apps which are already there, which could then in turn become generic ActivityPub apps.

@jancborchardt with respect, this seems to me an abuse of those apps that are promoted as Mastodon clients and that expect to be used with a Mastodon instance to ensure a certain user experience.

I now see that you changed the title mentioning also ActivityPub client-server API, I appreciate it.

I will point out that whenever one of the mastodon apps has had an incompatibility with a non-mastodon service, it's mostly been on the service to fix it. These apps are developed for mastodon and will make easy fixes but don't go out of their way for broad compatibility and mastodon is a very opinionated project.

Talked to the awesome @connyduck of Tusky (Mastodon app for Android) at 35C3 and he said that Pleroma works well through Tusky too and that they are fine with this usage.

And if there are any incompatibilities, we are of course happy to also contribute to a client app. It’s great to work with all the cool existing apps. :)

Mastalab is rebranding to Fedilab to enable more Federated platforms: https://gitlab.com/tom79/mastalab
Might be a good time to get it working with this :)

See also: https://fedilab.app/

Would be nice to use existing clients. Also mastodon compatible webclients like pinafore, halcyon, cuckoo, ...

It's getting closer and closer to the top of the to-do list

Roadmap for this feature:

  • [ ] Alpha 2.2: moving existing route from /api/v1/ to /local/v1/
  • [ ] Alpha 2.3: finalizing OAuth and testing few endpoints.
  • [ ] Alpha 3.x: implementation of more features.

Just for reference: The android app "AndStatus" implements a generic ActivityPub S2C interface (it currently needs to be explicitely enabled to show up) https://github.com/andstatus/andstatus/issues/499
The pleroma server at least has implemented (or is implementing) the server side of the API as well.

@daita so @karlitschek mentioned that it could be possible to fix this with server rewrites? E.g. we can check which file/path the Mastodon clients usually try to access and offer that, much like we have the /call/****** path for Nextcloud Talk.

Otherwise or in any case we can also simply chat with the client devs and make sure there’s at least 1 app on every platform which works with Social which we can then also recommend.

(cc @icewind1991 @rullzer)

@jancborchardt Has there been any further progress on this?

For reference: Mastodon has a C2S open issue here https://github.com/tootsuite/mastodon/issues/10520

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ArtificialOwl picture ArtificialOwl  ·  6Comments

jancborchardt picture jancborchardt  ·  5Comments

maiki picture maiki  ·  5Comments

sunjam picture sunjam  ·  4Comments

jancborchardt picture jancborchardt  ·  6Comments