The Whrrl request for email comes after the user has already authenticated their Facebook account thus skirting FB requirement to not ask for it on Auth. It would be the same as a redirect to the user's edit details page...just a little more elegant because it's all done via JQUERY / AJAX I believe.
Follow up post - here is another way to gather the email on Facebook sign-in - based on Whrrl:
Once the user clicks sign-in, they are presented this window
After clicking FB Connect, they see this
Then their FB details AND their email is stored on Whrrl. I thought this was a nice way of doing it!
Just a few thought on the topic...
Obviously, the easier way would be to have the user give you their email address directly. However, I believe there is a way to send system emails to users via Facebook Connect without actually having their email on file, but the user needs to accept Extended Permissions during authentication. According to the FB Connect documentation, there are two methods:
Option 1: notifications.sendEmail as outlined here: [url:2yjwyur8]http://wiki.developers.facebook.com/index.php/Notifications.sendEmail[/url:2yjwyur8]
Option 2: proxied_email FQL field as outlined here: [url:2yjwyur8]http://wiki.developers.facebook.com/index.php/User_(FQL)[/url:2yjwyur8]
Option 1 has a limitation of 100 emails per method call, which basically means you would need to batch your system email into groups of 100 somehow. Not sure if these options could somehow be integrated or if I'm mis-interpreting their usage somehow.