Find My Friends on this site
| Project: | Drupal Contact List Importer |
| Version: | 6.x-2.x-dev |
| Component: | Code |
| Category: | feature request |
| Priority: | normal |
| Assigned: | hadsie |
| Status: | closed |
Jump to:
Hi,
I've just posted this in the forum http://drupal.org/node/331868
And then I thought to post a feature request directly to DCL Importer module.
It would be absolutely cool if DCL importer would help people find their existing real-life friends by checking their existing Hotmail, Gmail, Facebook or any other e-mail account??? A feature that we see as a standard 2nd step after registration in Digg, StumbleUpon, Facebook, Twitter and a 1000+ other websites..
I'm running a community-driven website, which has some social networking features. But this is what I notice: people create their account and then don't know quite what to do. Very often they'll go to "Community" link which is nothing more than something like www.drupal.org/profile -- they go there in search of people they already know. This is what we humans do when we first walk into a room full of strangers: look for someone we already know in real life.
I'm wondering if it would be possible to expand DCL importer as a module that will let you enter your e-mail username, choose the e-mail provider (Hotmail, Gmail, Yahoo and why not Facebook), let you enter your password, and then go out there into user's e-mail addressbook, or Facebook friends list, get those e-mail addresses, compare these e-mail addresses with those of the already registred users, and finally present you with a list with of avatars, usernames on the site and their "real names" in the e-mail addressbook ... with an option to "+ Add to my Friends" (integration with Buddylist or User Relationships).
It's really one those features that is a MUST on any site full of strangers.
The module that I found to be closest to this kind of behaviour is DCL_importer, BUT, it's in .dev, it doesn't look like it has been updated in a long time, it's results interface is NOT intuitive and NOT user-friendly, AND is only for fetching the e-mail's addressbook and inviting new members. Because DCL Importer is closest to this kind of functionality, I wonder if you would expand it's functionality to integrate not only with invite module, but also with BuddyList or User Relationships.
or would you recommend using some other module that already exists?
thanks a lot!!!

#1
IMO dcl_importer, invite, friendlist are the three modules that should work together in ideal scenario. I am already working on to clean up dcl_importer and have established a relationship with invite and friendlist so that invited people are added as each other's friend on account creation. The feature that you have mentioned is a good one to implement and sure enough there is lot of need for it. The way it should work is that dcl_importer should import contacts and then divide them into two parts - one part contains emails that are not already registered in drupal and should send them to the invite module to process and the other part contains emails that are already registered and should send them for the friendlist to add as friend.
I will try my hand at this and keep this thread updated.
#2
Please also implement User Relationship module
Thanks
#3
Neokrish, THANK YOU very much for taking up this very much needed task!!!
I have DCL_importer on my live site but people complain that they "can't" use it. The confusion arises because of very poor user interface. I think User Interface should also be a very important area to develop... so that it's intuitive!!!
The best thing to do is probably to look at the workflow of how major sites like StumbleUpon, Twitter, Facebook, Digg and others are doing it.
First they present a choice "Find your friends who are already registered" and it goes out and finds those registered friends and spits out their avatars and an option to "Add to friends" or "Follow" (working through ajax). But at the bottom there should also be a list of all other e-mails with their addressbook real names (with a checkbox next to each name) so that people can additionally invite those other friends if they want.
I'm looking forward to testing these new features on my live site.
#4
drupalina, I am taking up your suggestions and feel that's a good idea. Once I have something worthwhile to review, I will update this post and you can take a test drive.
thanks,
neokrish
#5
it's good to see that someone is working on this module. thank you!
#6
This is very interesting thread to follow. Thanks neokrish
#7
Thank you for working on this module. I may not be able to give anything extra but I truly do appreciate the hard work.
#8
it seems noone is working any more on this module :(
#9
I've taken over maintenance of this module and this feature definitely makes sense for it. I've just cleaned up a bunch of code and it can import properly from some mail services such as gmail now and send out invites to friends.
Facebook support is a bit harder, since the openinviter module (which dcl is based on) only returns the facebook uid, but possibly integration with a facebook module would be possible.
I think the functionality you want is basically already in drupal, we just need the split between users who exist in the system and those who don't and need to be invited.
#10
#11
Alleluya!!! This is Great news!!!
I agree totally about the split between users in the system and potential invitees.
Every SNS or community site that I sign up for, for testing purposes, gives this step as a standard second step after a new user creates an account. This is why I think it is extremely important that Drupal has this kind of feature too.
The success of a new SNS or community site can be measured by extent of friend "relationships" that its members have. The more friends or people that a person is interested in there are, the more likely that that person will come back more friequently.
Another MAJOR reason for the necessity of this functionality is that statistical research shows that people tend to use their @hotmail or @gmail accounts in order to register for new websites, because they don't want to immediately use their serious "professional" e-mail addresses. And this is a statistical fact that could be taken advantage of.
I run 2 community sites, and from numerous end-users I have received feedback that the user-interface in DCL_importer is very confusing. They don't quite know what to expect, so I provide additional information in a sidebar block. I think it is very important that the UI is very user friendly, because this is the point when people enter their e-mail's password on an alien site, so they need to trust that none of the passwords is stored and that this is a harmless procedure that will simply compare the list of contacts in their e-mail addressbook with those already registered on this site.
I think it would helpful if you created various accounts on a variety of sites , just to see how this procedure is presented: Facebook (very nice), Twitter, Digg, StumbleUpon (very nice), etc.
It would be effective if DCL importer followed the following procedure:
1) Fetch the list from e-mail or SNS and display who is already registered on this Drupal site in a neat structure (with avatar and with an ajaxified option to "Add to friends", which also means integration with different "buddylist" modules like Friendlist).
2) ... and below the list of existing registred members will be a list of potential invitees: with default avatar's, their real Names as appears in their addressbook (if not then just their e-mail address) and a checkbox next to each avatar. And at the bottom would be a button "Invite selected individuals". (This is how we see it done on StumbleUpon and Facebook)
At the same time, DCL_importer could integrate with Invite module in a more seamless manner. Apart from providing a separate page, the DCL importer would be even more useful if it had a separate column on the Invite page-- something like "Import addresses from your e-mail addresses". It would be also useful if the whole procedure would be done dynamically and seamlessly, without being redirected to a new page.
#12
I've stripped out the invite functionality and dropped it into it's own connector module. There's also very basic support for friendlist and user_relationships, but the interface still leaves a lot to be desired. Unfortunately I suck at ajax stuff. It's not really a simple problem to just make this work like facebook or digg or linkedin works, since it needs to allow for multiple modules to hook into it all of which may perform different functions.
For example, let's say you're using the friendlist AND user_relationship modules. You run a "find my friends" and it returns a list of people who exist in the system and people who don't. Friendlist will see that you're already friends with some of those people who exist in the system and want to remove them from the list (it doesn't make sense to show you users in the "find my friends" section if their already your friend). However, you may still be lacking user_relationships with those people... so should they actually still be in the list? Probably not, as you would have deliberately setup the relationships already. But again, it depends on how the site is using that module.
Anyway, I'm open to any suggestions that will simplify this. I'm also open to any patches that will make this more "ajaxy".
#13
IMHO, sites that use Friendslist module don't use User_Relationships. They use either one module or the other. And I think Friendslist is going to become the buddylist module of choice in 6x, but that doesn't mean that a support for User_Relationships should not be there.
Also, yes, you are correct -- if Mary is already following Tom, then Tom's name should not show up in Mary's "Find my Friends" feature. But if Tom is following Mary, while Mary is not following Tom, then yes Tom should show up in Mary's Find My Friends list with a Follow button next to his name and avatar. This is how, I think, it should be on sites which maintain 1-way relationships of Following/Follower (like on Twitter)
In case of sites which maintain 2-way relationships like "Friends" (as we see on Facebook, where people are mutually confirmed friends), then this case is even simpler. If Mary and Tom are friends, then they should not show up in each other's "Find my Friends" lists.
#14
subscribing
#15
suscribing!
#16
I've released a new branch of this with a reworked UI. The user relationships support is currently broken but it works with friendlist and invite modules. It depends on the gridselect module and possibly ahah_helper if you want to use the advanced import form.
This has had a find my friends functionality for some time now, but it actually works somewhat better now. Unfortunately it only supports one type of relationship action for friendlist.
#17
User relationships support is now in place. Both UR and friendlist have a "find friends" feature. Please check it out and let me know what you think. The UI isn't the cleanest but I'm open to suggestions.
#18
Automatically closed -- issue fixed for 2 weeks with no activity.