Unable to save textfield on node_save()
You forgot to add the language to your fields:

$node-&gt;field_profile_fn[LANGUAGE_NONE][0]['value'] = $fbuser-&gt;first_name;


But even then, this is not the way to go. You should take a look at https://www.drupal.org/documentation/entity-metadata-wrappers

This approach allows you to use something like this:

 $wrapper-&gt;field_profile_fn-&gt;set($fbuser-&gt;first_name);
 $wrapper-&gt;save();