How best to handle account name collisions?
Here's another poll question for the DFF community...
If you're using Drupal for Facebook you're aware that it will create a Drupal account when facebook users use your app. You're also aware that it uses the facebook name for the drupal account name.
Trouble is, Drupal account's need to be uniquely named, while facebook accounts do not. Also, your drupal install may already have a user with the same name as a facebook user.
So my question is, what should DFF do when it needs to create a user and the name is already taken? Note that it will not always be possible to prompt the user in these cases. So it's better for DFF to name the user in some way and give the user a chance to change the name later.
1) User John Doe gets "John Doe" if available. If not, they get "John Doe 2", "John Doe 3", etc...
2) User John Doe gets "123456789@facebook", where 123456789 is their facebook user id.
Note that option 2 could also have name collisions, if your drupal install hosts more than one app and you've checked the make account unique option. So a third option might be
3) User John Doe gets "123456789@myapp", where myapp is the label you specified when you created the Facebook Application node.
I'm leaning towards (2) or (3), the more I think about it. It makes the drupal account names less friendly. But, the code to generate the names is easy, and names can always be changed later, at a time when collision checking is easier. In a world where a drupal site might be generating users via facebook, opensocial and who knows how else, using human-readable names just doesn't seem like a good idea.
What do you think?