Closed cwebber closed 7 years ago
It's worth noting that on the informal Mumble call today we (@Gargron, @puckipedia, @cwebber and I) decided that we think it makes sense for this to be required always. I.e. when a user follows a "public" account, an Accept activity will be sent to ack the follow.
Any rationale why it should be always required? This doesn't fit in with popular "one sided" models, for example Twitter model, which I'm implementing. Of course one can make an implementation to auto-ack any follow, which is no problem. Just wondering why it makes sense to be required?
Of course one can make an implementation to auto-ack any follow, which is no problem.
Right, this was the intention. There are a couple reasons why this is a good idea:
When we incorporate this, we should also specify later how to do a retroactive reject of a follow Accept, as per discussion.
Evan suggested on the call that we use this non-normative mechanism described in the AS2 vocab document which uses {Offer {Relationship}}
. I took some time to look at it, and I'm feeling less confident in it; it would effectively mean having two separate follow mechanisms. I'm not sure there would even be a good way to query which mechanism a site supports.
Somewhat related? https://github.com/w3c/activitypub/issues/80
Scenarios:
Related, and nice to resurface old conversations and memories of conversations ;)
Though we're now talking about two, actually three, workflows, so we should be careful to not lose ourselves in the weeds here...
Amy suggested over PM that:
We represent these as Activities, not as HTTP codes.
urgh mixing http transport codes with application logic
/me goes back to his corner
I'll add proposed text for next week.
Discussed in the meeting of 25th July: https://www.w3.org/wiki/Socialwg/2017-07-25-minutes#ap-244
Decision was to make responding to a Follow
with an Accept
or Reject
mandatory, with the understanding that some implementations may wish to do this automatically, and others with user intervention.
Proposed text:
Update to 6.4 Follow Activity:
The
Follow
activity is used to subscribe to the activities of another user.The side effect of receiving this in an outbox is that the server SHOULD add the
object
to theactor
'sFollowing
Collection when and only if anAccept
activity is subsequently received with thisFollow
activity as itsobject
.
Update to 7.5 Follow Activity:
The side effect of receiving this in an inbox is that the server MUST generate either an
Accept
orReject
activity with theFollow
as theobject
and deliver it to theactor
of theFollow
. TheAccept
orReject
MAY be generated automatically, or MAY be the result of user input.In the case of an
Accept
, the server SHOULD add theactor
to theobject
user'sFollowers
Collection. In the case of aReject
, the server MUST NOT add theactor
to theobject
user'sFollowers
Collection.
New sections in Server-to-Server, probably after 7.5:
Accept Activity
If the
object
of anAccept
received to an inbox is aFollow
Activity previously sent by the receiver, the server SHOULD add theactor
to the receiver'sFollowing
Collection.Reject Activity
If the
object
of aReject
received to an inbox is aFollow
Activity previously sent by the receiver, this means the recipient did not approve the Follow request. The server MUST NOT add theactor
to the receiver'sFollowing
Collection.
I'm a bit concerned about how it's suddenly really easy to see if someone rejected your follow request. If I reject a request on facebook, I think it happens silently. Perhaps this is an implementation/UI detail that should allow people to dismiss requests (so they're not cluttering up the place) without explicitly acknowledging them (ie. the server doesn't ever send a Reject
). Maybe we should have a NOTE about this though.
Maybe the 7.5 MUST should be a SHOULD, and we make a note about it MUST happen to be sure the other end knows you ack'd it, but if you don't ever want to ack it (or you want to wait 10,000 years to do so) that's allowed.
Fantastic work as always @rhiaro, incorporating.
I agree on the not having a MUST on a Reject and making it a SHOULD instead. I'll tweak it.
I added this, and also added a tweak basically giving a MAY escape hatch where you don't want to do a Reject for privacy reasons (along with a note about considering the implications of lack of signal leaving an intermediate state). I also added a note that Accept and Reject may be used for other object types not specified in this document (such as Offer).
Thank you so much @rhiaro !
<cwebber2> RESOLVED: Accept Accept/Reject on Follow language from Editor's
Draft with adjustments to example discussed on this call to resolve
#244.
Suggested change to phrasing:
<cwebber2> so maybe: Servers MAY choose to not explicitly send a Reject in
response to a Follow, though implementors ought to be aware that
the server sending the request may be left in an intermediate
state. For example, a server might not send a Reject to protect a
user's privacy.
``
Oh yeah, this is done and in!
We need to support when users want to ack/nack follow requests.