nextcloud / social

πŸŽ‰ Social can be used for work, or to connect to the fediverse!
https://apps.nextcloud.com/apps/social
GNU Affero General Public License v3.0
490 stars 59 forks source link

Implement Mastodon client API (in addition to ActivityPub) for 3rd party client compatibility #145

Open jancborchardt opened 5 years ago

jancborchardt commented 5 years ago

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)

πŸ˜πŸŽ‰β˜

juliushaertl commented 5 years ago

For reference: https://github.com/tootsuite/documentation/blob/master/Using-the-API/API.md

ArtificialOwl commented 5 years ago

So, we need to:

poVoq commented 5 years ago

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

alxlg commented 5 years ago

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.

jancborchardt commented 5 years ago

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.

alxlg commented 5 years ago

@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.

zcdunn commented 5 years ago

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.

jancborchardt commented 5 years ago

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. :)

poVoq commented 5 years ago

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/

aliceinwire commented 5 years ago

https://git.pleroma.social/pleroma/pleroma/tree/develop/lib/pleroma/web/mastodon_api

pwFoo commented 4 years ago

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

ArtificialOwl commented 4 years ago

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

ArtificialOwl commented 4 years ago

Roadmap for this feature:

spaetz commented 4 years ago

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.

jancborchardt commented 3 years ago

@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)

apcameron commented 3 years ago

@jancborchardt Has there been any further progress on this?

aschrijver commented 3 years ago

For reference: Mastodon has a C2S open issue here https://github.com/tootsuite/mastodon/issues/10520 and here's SocialHub C2S Discussion.

Thatoo commented 10 months ago

Any news on this subject?

HammyHavoc commented 8 months ago

Would also be interested in more news.