snarfed / bridgy-fed

🌉 A bridge between decentralized social network protocols
https://fed.brid.gy
Creative Commons Zero v1.0 Universal
650 stars 32 forks source link

follow/unfollow UI? #351

Closed snarfed closed 1 year ago

snarfed commented 1 year ago

Right now, to follow someone on the fediverse, you have to post a public u-follow-of on your web site. And there's no way to unfollow right now, but the corresponding way would be to either 410 delete that follow post or post a new u-unfollow-of: #320.

These are uncommon in the IndieWeb community, since following and unfollowing generally happens privately and internal to each person's reader, which doesn't need posts or mf2 for interop. Also, public following and especially public unfollowing are awkward and undesirable socially. Background discussion.

So, should Bridgy Fed (ahem) follow this pattern and provide its own follow/unfollow UX, eg via a web form on https://fed.brid.gy/ somewhere? This is nontrivial since right now it has no login or authenticated sessions. We could add them with IndieAuth thouch, which would take work, but is definitely doable.

datakurre commented 1 year ago

I’d vote for mf2 u-follow-of / u-unfollow-of. Not needing authentication is a significant feature. 410 would limit 1:1 relationships for follows and URLs, and would require support from CMS (or similar).

Before Web2.0 or even Google it was common to have dedicated “Links” page to promote web sites the author was fan of. That sounds a lot like “follows” page for me. And mf2 unfollow would allow such page with multiple follows and unfollows on a single pages. Follows could be a visible link list (every link being its own h-entry), and unfollows could remain as hidden links in the list.

tmichellemoore commented 1 year ago

@snarfed Would this feature be the one that makes it possible for WordPress, for example, to follow others? Resulting in an increase in the following count on Mastodon, for example? As a user, my opinion would be that it would be the feature that could induce me to federate my WordPress site.

snarfed commented 1 year ago

@tmichellemoore you can do that with Bridgy Fed now! https://fed.brid.gy/docs#follow

tmichellemoore commented 1 year ago

@snarfed Thank you! If someone followed others this way, would they then see the posts from the people you are following in Bridgy Fed? (Sorry for the delay, I didn’t receive a notification for this msg.)

snarfed commented 1 year ago

Yup! https://fed.brid.gy/docs#read

StarrWulfe commented 1 year ago

Would you still retain the option to do a follow webmention in a pinch even after the UI method is available since it's already scriptable as is with a POST action?

StarrWulfe commented 1 year ago

Would this feature be the one that makes it possible for WordPress, for example, to follow others? ... As a user, my opinion would be that it would be the feature that could induce me to federate my WordPress site.

The Friends plugin for Wordpress works in a similar manner with follows but keeps the resulting follow posts in a personal page by default. Unfriending is a simple delete of the post and it interprets that action to trigger the removal friend from the database.

Retaining a way similar to this would be

snarfed commented 1 year ago

Would you still retain the option to do a follow webmention in a pinch even after the UI method is available since it's already scriptable as is with a POST action?

Yup!

tmichellemoore commented 1 year ago

@snarfed, I like the follow feature. I tested it with two users, you and another. I was successful following you. On following the second user, it made me authenticate again and when I did so I received this error: Bad Request, IndieAuth verification failed: 400 {“error”:”invalid_grant”,”error_description”:”Invalid authorization code”}| I had not turned the redirects back on when I did this, but the redirects for BridgyFed don’t seem to be related to IndieAuth.

(Originally published at: https://tmichellemoore.com/?p=151750)

snarfed commented 1 year ago

Hmm, sorry for the trouble! BF does make you re-auth each time, that's expected. I see your failures, but I'm not sure what caused them. The "invalid authorization code" error is from your site, from the IndieAuth plugin; that usually happens if you use the back button to go back through the IndieAuth flow and then try to do it again. Here though, all of your requests had different auth codes, so I don't know.

Fwiw, it looks like we're both using the WordPress IndieAuth plugin, and I used it to test this UI to follow many people, successfully. cc @dshanske

snarfed commented 1 year ago

Done!