-
Notifications
You must be signed in to change notification settings - Fork 53
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
Unify social and social2 APIs #272
Comments
Generally LGTM, some thoughts:
|
The trouble is that we want the program to be able to show/enable the user interface for adding contacts only when using a social network that actually supports this feature. Finding out after the fact that it didn't work is too late, and we still don't know why it didn't work. (Maybe it was a malformed token.)
My theory is that this can be done in-band (through the social network) once the initial introduction is in place. Do you have a motivating use case? How do we allow this but also allow very short introduction tokens in cases where the user has to handle them? |
|
How does this interface extension affect the current implicit assumption that "buddies" involve consent to distribute presence? One of the biggest pieces of feedback that we got during our user experience trip is just how frustrating it can be to coordinate with friends. This includes invitation to install the program, finding friends on uProxy, and requesting consent. The findings are being tracked here: I agree we need to do something to improve this UX, I'd wait until we have a better idea of what UX we really want and then decide if the proposal here is consistent with that. I believe Izzie plans to bring this up at the next UI sync. One potential alternative to adding buddylist management to the interface is to just assume a global buddylist in these cases. (e.g. in Google spreadsheets). This would be consistent with one such proposed UX, where we always hide the buddylist and allow users to explicitly add users (if they're already friends & both have uProxy), or allow users to invite friends (if they're already friends & the friend doesn't have uProxy), or allow users to invite new friends (if they're not friends on the social network yet) |
For something like an e-mail-based social provider with ping-pong e-mail liveness checks for presence, I expect the remote peer would just appear to be offline until they consent. I think the methods listed here (and in #273) are the basic primitives needed for pretty much any user-adding design, but I'm happy to wait for a meeting to discuss it. |
We are starting to experiment with social networks where we need some interface to add a contact (Quiver, Firebase email). Both of these still have a lot of technical issues, and there remains a lot of political/philosophical debate on whether we should even do them in the first place, but in the short term we really do need an API to add contacts in order to move forward. Do you think until we all come to agreement it makes more sense to create a new Freedom interface (not part of the freedomjs/freedom providers definition) that supports addContact? (question for @ryscheng ) I agree we need UX eventually but I think we need to start experimenting now to see what is possible, and not wait for a completely new UX design in #1535. As much as I'd like for Izzie to come up with a great UX and us to implement it for all social providers, I think the reality is that all the social providers we know of have major limitations, and we need to make in-uProxy-but-not-publicly-available social providers to see what is actually going to be possible. |
There is a 3x3 matrix of possible start and end points here:
Presumably for uProxy, the important thing is that all 3 of these are true. So does addContact(...) reject unless all 3 are true? How do we handle partial errors in this case? How do we deal with social providers that cannot achieve 1 or more of these properties? Can you give me a sense of which social provider we want to have support all 3? |
For example, in a reverse-engineered total-control Facebook provider, I imagine that getIntroductionToken might return a string that conveys both the initiator's userid and a single-use code, and addContact on the receiver would resolve if a user exists with the given userid, and reject otherwise. It would also initiate a friend request to the initiator, with the message containing the code. The initiator would see the friend request, check the validity of the included code, and accept the request. Obviously I'm not proposing that we actually implement this for Facebook, but there are other social providers where this sort of flow may be appropriate. |
Cool. I see what you're saying now. I think there's 2 open questions in my mind still. Apologize for the time difference/delayed responses. Wouldn't mind just having a VC about this soon. 2 questions then:
|
If the token is just the userid, then how do you avoid promiscuously I said earlier that the token might just be the userid in many cases ...
|
So this issue is a bit stale, but I'm revisiting because it's related to another outstanding issue we should resolve - unifying the social/social2 APIs - which is basically about the same thing. Simplified arguments in favor of each:
Possible approaches:
My opinion actually isn't terribly strong on this, just be good to have it resolved one way or another. |
The freedom social interface assumes that your buddy list is managed using some other client. This makes sense for traditional chat networks, but makes less sense as we try to expand the range of supported communications systems (e.g. e-mail, Google Sheets). It would be nice if the buddy list could be managed directly on the freedom client.
Proposed new methods:
@dborkan PTAL
The text was updated successfully, but these errors were encountered: