User Profile Fields
Let's say you've defined Drupal profile fields, and the information you want in them might be available from the Facebook APIs. It would be
User Accounts rely on Identity which is how Drupal for Facebook handles users. Identity uses the fb_user.module (User Management) to link Drupal user accounts to Facebook accounts. This supports the notion that Drupal knows you as a local Drupal user and knows your ID on Facebook.
When someone visits your Drupal site and logs on with their Facebook username and password, Drupal for Facebook learns more information about that visitor like their name because they have authorized the application by logging in with their Facebook credentials.
A local account gives your site visitors permission to post in your forums. A map links the two accounts, so the server always knows who they are.
Drupal for Facebook creates this local account to take advantage of profiles, roles, pemissions and other advanced features that come with Drupal.
And, because you know your site visitor's ID on Facebook, Drupal for Facebook can use your friends, groups and social network in ways that Drupal alone could not.
This is the easiest option for your users. Simply by clicking through the Facebook Connect button (called "authorizing the application") the user will have an account on your server.

Don't forget that for this to actually do anything, you will need to switch on the FB "Extended Permissions" module as well.




their local account will be created and will look like the screenshot demonstration at the bottom of the Installation-Application page.
Use this option if your application requires information that cannot be learned from a user's Facebook account info. For example, if your users must accept Terms of Service or some other agreement before proceeding. Or, if you ask for detailed registration information such as an address or phone number.

At this point, Drupal for Facebook will not create accounts; however, an account will be created by Drupal when the user submits the registration page. Then, if the user is connected to Facebook (or connects later), Drupal for Facebook will create a map linking the local account to the Facebook account. So, that in the future, clicking the Facebook Connect button will log the user into the proper local account.
By default, Facebook does not share a user's email address with an application. But it does provide a way to get it. The application can request an extended permission to get this (and other information from facebook).
With Drupal for Facebook you have two options for requesting the email extended permission. The first option is to enable the fb_permission.module (found in modules/fb/contrib). This module will let you specify which of facebook's extended permissions are required (or optional) for each of you apps.
The second option is to implement an alter hook. This way your own custom module can control exactly what extended permissions are requested for each login button. Here's an example that requests the email extended perm:
/**
* Implements hook_fb_required_perms_alter().
*
* Builds a list of extended permissions required when authorizing the current
* facebook app.
*
* @see http://developers.facebook.com/docs/authentication/permissions
*/
function fb_example_fb_required_perms_alter(&$perms) {
if (variable_get('fb_example_require_email', TRUE)) {
$perms[] = 'email';
}
}
There is a long list of extended permissions that allow your app to learn various details about a user. The 'email' permission is the only one built into fb_user.module. If you have requested that permission, fb_user.module will save the email address when it creates a new account. It will not attempt to update accounts that were created without that permission, however.
Let's say you've defined Drupal profile fields, and the information you want in them might be available from the Facebook APIs. It would be