New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Mastodon should send webmentions to linked sites. #6074

Closed
sivy opened this Issue Dec 20, 2017 · 26 comments

Comments

Projects
None yet
@sivy

sivy commented Dec 20, 2017

Mastodon should send webmentions to linked sites.

Webmentions are a way to notify sites that they have been linked on a blog or social media. While #1384 is focused on Mastodon processing webmentions from outside, I think that it would be easier and more useful in the short term to have Mastodon attempt to send a webmention to sites that are linked in a toot, with the permalink of the toot.

https://webmention.net/draft/

Mastodon already has code to fetch the site (for generating a card), so parsing the result for a webmention endpoint should be a short step. Sending webmentions documents the process:

The sender MUST fetch the target URL (and follow redirects [FETCH]) and check for an HTTP Link header [RFC5988] with a rel value of "webmention". (Alternate endpoint discovery methods discussed here too)

The sender MUST post x-www-form-urlencoded [HTML5] source and target parameters to the Webmention endpoint, where source is the URL of the sender's page containing a link, and target is the URL of the page being linked to.


  • I searched or browsed the repo’s other issues to ensure this is not a duplicate.
@Gargron

This comment has been minimized.

Member

Gargron commented Dec 20, 2017

How many sites support accepting webmentions?

@sivy

This comment has been minimized.

sivy commented Dec 20, 2017

I'm afraid I don't know right now. It's in the W3C standard process (https://www.w3.org/TR/webmention/), and there are plugins for wordpress and other platforms.

It might be interesting to just add a metric collection on which sites have been retrieved for cards that have the appropriate headers, before deciding to write the sending code...

@clarcharr

This comment has been minimized.

clarcharr commented Dec 22, 2017

Any setting like this should be configurable on a per-instance and per-user level.

@chrisaldrich

This comment has been minimized.

chrisaldrich commented Jan 26, 2018

Within the past month it's guestimated that over 1 million webmentions have been sent on the internet. There's not really solid research on how many sites physically send and/or receive them, but as of last June the conservative number was in the range of about 5,000 and the number is increasing rapidly, particularly with platforms like micro.blog (5-10,000 accounts) now supporting them out of the box and CMSs like Drupal (via plugin) and Perch having added them since then. This also doesn't take into account an anecdotally sharp uptick of adoption on WordPress via plugin, most notably by several WordPress core developers.

Mastodon already supports most microformats for webmention to be implemented more easily. #122 and #965

There are already a number of open source tools that might also be bootstrapped for something like this as well: https://indieweb.org/Webmention#Services

@snarfed

This comment has been minimized.

snarfed commented Jan 26, 2018

thanks chris! you all can also try out https://fed.brid.gy/ , an opt in service that translates webmentions to ActivityPub/OStatus and vice versa. i’m happy to answer any q’s on the mapping. (and mastodon is the main use case!)

@qubyte

This comment has been minimized.

qubyte commented Mar 27, 2018

Webmentions are popular amongst the IndieWeb crowd (myself included, though my blog is very low traffic). Scroll to the bottom of this example (Jeremy Keith's journal) for an example of them being used.

@qubyte

This comment has been minimized.

qubyte commented Mar 27, 2018

Ah, also worth noting, Webmention progressed to a w3c recommendation a couple of months back. https://www.w3.org/TR/webmention/

@nhoizey

This comment has been minimized.

nhoizey commented Apr 3, 2018

Webmentions are gaining traction thanks to implementations in plugins for Jekyll, Kirby, Drupal, Wordpress, etc.

It would be awesome being able to receive Webmentions from toots!

@qubyte

This comment has been minimized.

qubyte commented Apr 3, 2018

My own blog is hosted on netlify, and their built in form handling is well suited to webmentions (at least until the free limit is hit). Sending is more involved since a webmention endpoint has to be detected (I do this via a hand-rolled cli utility).

@kaushalmodi

This comment has been minimized.

kaushalmodi commented Apr 3, 2018

@nhoizey My blog built using Hugo also supports Webmentions. I'm seeing more people adding support for Webmentions in recent past.

@nightpool

This comment has been minimized.

Collaborator

nightpool commented Apr 3, 2018

I really like the idea of webmentions in theory, but I feel like in practice people link to blogs for negative reasons as much as positive ones, and would be really surprised/upset if they found out we were telling the author that they were shitting on their post—especially if they thought it was just between them and their followers and didn't want or think the post's author was going to see it

(for example, they had a really petty criticism like "good article but I hate this dude because he reminds me of someone i used to know in 3rd grade" and would be really upset if webmentions meant what they thought was just between them + their followers suddenly shoved in the author's face when they totally didn't mean to)

anyway like I said I really like the idea but I feel like in practice implementing webmentions would be ......... awkward.

@qubyte

This comment has been minimized.

qubyte commented Apr 3, 2018

I see what you mean. I suppose this points to making the feature somehow optional, and the complications that brings...

@kaushalmodi

This comment has been minimized.

kaushalmodi commented Apr 3, 2018

Odd, this feature shouldn't be implemented so that people can swear behind the original article's author's back? If they want to do that, just don't include the article's link in the same toot where they swear.. problem solved :D

I really think this is a non-issue. The plus is that the author's get motivated seeing they are getting referenced where they didn't expect, and would write more and better.

@qubyte

This comment has been minimized.

qubyte commented Apr 4, 2018

That may be the case (and I'd personally be happy with this), but links potentially sending webmentions should not be surprising to a user. Since not all links will have a corresponding webmention receiver, and mastodon hasn't worked this way up to now, there'd be a risk of that.

@npdoty

This comment has been minimized.

npdoty commented Apr 4, 2018

FWIW, I think as Gargron is suggesting it, mentions would only be sent on public toots, so if you wanted to insult (or otherwise mention in a discreet way) a blogger to your followers while still linking to them and not having them realize, you could accomplish that through a non-public toot.

Nonetheless, I see how this is a privacy issue, even in the case of public toots. Sending a notification is different from just providing a link. Particularly when searching for a link isn't provided functionality, there is a significant meaningful difference in effective publicity.

I think users understand that @-mentions do include notifications of the mentioned person. Maybe links could be like that too, where if you put "@" before a link, then the target of the link is notified, and if you don't, then it's just a simple link. That would be the difference between replying to a blog post (functionality which I would love to have for my Mastodon account) and just linking to it.

@nightpool

This comment has been minimized.

Collaborator

nightpool commented Apr 4, 2018

I think users understand that @-mentions do include notifications of the mentioned person

You would think this, but as an admin at least once a month a user DMs me with a complaint about another user, and accidentally manages to tag and notify the other user in the process. It's not exactly as unsurprising as you would expect.

@npdoty

This comment has been minimized.

npdoty commented Apr 4, 2018

@nightpool yeah, I understand that it's still possible to accidentally notify someone when you didn't want to, I just meant that there is a documented way of actively mentioning someone on Mastodon, and it's the @ sign.

@kevinmarks

This comment has been minimized.

kevinmarks commented Apr 4, 2018

How about using the existing cw model, so if you don't want webmentions sent you use a cw wrapper?

@Gargron

This comment has been minimized.

Member

Gargron commented Apr 4, 2018

I did a poll for public opinion: https://mastodon.social/@Gargron/99798025215868039 And while the actual poll is almost 50:50, a lot of valid privacy concerns were raised

  • It's a privacy violation that people aren't expecting (change of behaviour, not desired behaviour for everybody)
  • It's a way to potentially DDoS websites in coordinated attacks
  • It has processing costs (HTTP requests are always nasty because they can take multiple seconds or even longer if the website is unresponsive)
  • Hiding it behind options would mean it's useless to website authors as barely anyone would discover that option or care to enable it. For that matter, it's a waste of development time for Mastodon too if almost nobody will use it

With all this it's easier for me to not spend any effort on implementing them in Mastodon.

@Gargron Gargron closed this Apr 4, 2018

@nhoizey

This comment has been minimized.

nhoizey commented Apr 4, 2018

I didn't see your poll, as probably a lot of Webmentions enthusiasts… :-/

I totally respect the fact you are not interested in this and you don't want to spend any effort on implementing it, but I disagree with some of your justifications:

  • privacy violation: make it available only on public toots, only if the Mastodon admin has activated it, and only if the user has activated it
  • potential DDoS: what about current requests made to build a content card?
  • processing cost: make it asynchronous
  • optional=useless: remove all current options, then

I just hope someone will want it and have the technical knowledge to make a PR…

Or maybe it could be a third party service each user could plug on its account.

@jalcine

This comment has been minimized.

jalcine commented Apr 4, 2018

IIRC content cards (or h-cards rather) are processed once and the information's pushed down lightly.

@zcdunn

This comment has been minimized.

zcdunn commented Apr 4, 2018

Webmentions could be implemented with a special link syntax. By default links don't send a webmention but if you use the syntax, it does. Then there's not additional option in settings and the user can decide if they want to use them or not per post.

@qubyte

This comment has been minimized.

qubyte commented Apr 4, 2018

I made a glitch over lunch to periodically check my own statuses for links, and dispatch webmentions accordingly. It's still pretty crude, but works well so far. It works through old statuses and then new in batches, searches the content of each status for anchors, and dispatches webmentions for those which support them. Feel free to remix it!

Edit: Apologies. It was set to private, but public now.

@nhoizey

This comment has been minimized.

nhoizey commented Apr 5, 2018

@jalcine Webmentions don't require to be processed more than once, and could be processed at the same time as content cards

@zcdunn using a special syntax would make it even more difficult to "discover"

@qubyte WOW! Will check that, thanks!

@trwnh

This comment has been minimized.

Contributor

trwnh commented Apr 9, 2018

Is there anything technically preventing users from pasting a link to a Mastodon status in a webmentions form on the original website, as an alternative to automatic processing? Like the "ping" button that says "Have you published a response to this? Let me know the URL:" on the bottom of the example qubyte provided.

If there's still concern about automatic webmentioning simply by posting a public toot with a URL pasted, then it's possible to not implement that part (unless anyone wants to make it an optional dependency or an opt-in setting)

@trwnh trwnh referenced this issue Apr 9, 2018

Closed

Show replies on home feed / Discourage subtooting #7076

1 of 2 tasks complete
@qubyte

This comment has been minimized.

qubyte commented Apr 9, 2018

@trwnh Not as such, but the form at the bottom is a bit of a hack. Since webmentions work using a POST with the same encoding, the rendered form just happens to work (with a type="hidden" input for the target). The webmentions spec doesn't suggest doing this as far as I'm aware, so it's likely that many sites which implement webmentions only have the link header.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment