tuskyapp / Tusky

An Android client for the microblogging server Mastodon
https://tusky.app
GNU General Public License v3.0
2.5k stars 390 forks source link

Implementing sign-up API #1172

Open koyuawsmbrtn opened 5 years ago

koyuawsmbrtn commented 5 years ago

Since Mastodon 2.7 there is a new sign-up API that should enable users to register theirselves via Tusky. I'm asking if this could be implemented.

See: https://docs.joinmastodon.org/api/rest/accounts/#post-api-v1-accounts


koyuawsmbrtn commented 4 years ago

Still an issue that's here. Inditoot (which is a fork of Tusky) seems to have this already implemented (https://play.google.com/store/apps/details?id=com.inditoot.android). Sadly they deleted the source off GitHub, but it should be easy to re-implement the thing. I'm mentioning @connyduck on this, because this would actually add another useful function to Tusky. I found out that there is a way to check if the e-mail of the user has been confirmed yet so we could block out the account from the app for the time the user hasn't activated their account with the message that they should confirm their e-mail.

charlag commented 4 years ago

@koyuawsmbrtn that would be nice but I still don't see how one must discover and instance. Tusky is GLP so any fork must share their modifications. You can ask for the code and they must give it to you.

koyuawsmbrtn commented 4 years ago

Instance discovery can be handled through the joinmastodon.org API with a list of servers the user can search through. I did an implementation in JavaScript. The sign up button handling could then open an in-app sign up view.

I also implemented a way to check for the mainstream cover image and if the server image is 404ing somewhere and blocked these out. I wouldn't recommend to do it like this though, because it will hide a lot of servers away. It has been essentially done for optical reasons.

There is also a flag to search through "regional" instances and filter by languages where we could e.g. use location services to point people to a specific set of servers if they want to. The possibilities are endless.

On Inditoot: I wouldn't ask for the source code on this app. It more looks like they scrapped the idea and forgot to remove the Google Play link.


JS implementation: https://git.koyu.space/koyu/nordcast/src/branch/master/www/signup.js

Testing endpoints: https://api.joinmastodon.org/servers?category=general https://api.joinmastodon.org/servers?category=regional&language=de

API documentation (already mentioned above): https://docs.joinmastodon.org/methods/accounts#register-an-account