function setAvatar($user)
 {
     $picUrl = sprintf('http://graph.facebook.com/%s/picture?type=large', $this->fbuid);
     // fetch the picture from Facebook
     $client = new HTTPClient();
     // fetch the actual picture
     $response = $client->get($picUrl);
     if ($response->isOk()) {
         $finalUrl = $client->getUrl();
         // Make sure the filename is unique becuase it's possible for a user
         // to deauthorize our app, and then come back in as a new user but
         // have the same Facebook picture (avatar URLs have a unique index
         // and their URLs are based on the filenames).
         $filename = 'facebook-' . common_good_rand(4) . '-' . substr(strrchr($finalUrl, '/'), 1);
         $ok = file_put_contents(Avatar::path($filename), $response->getBody());
         if (!$ok) {
             common_log(LOG_WARNING, sprintf('Couldn\'t save Facebook avatar %s', $tmp), __FILE__);
         } else {
             // save it as an avatar
             $profile = $user->getProfile();
             if ($profile->setOriginal($filename)) {
                 common_log(LOG_INFO, sprintf('Saved avatar for %s (%d) from Facebook picture for ' . '%s (fbuid %d), filename = %s', $user->nickname, $user->id, $this->fbuser['name'], $this->fbuid, $filename), __FILE__);
             }
         }
     }
 }