function capture_create_user($profile)
{
    global $vbulletin;
    // init user datamanager class
    $userdata =& datamanager_init('User', $vbulletin, ERRTYPE_ARRAY);
    // set email
    $userdata->set('email', $profile['result']['email']);
    $userdata->set('username', $profile['result']['displayName']);
    $userdata->set('password', md5($profile['result']['uuid'] . date('U')));
    if ($profile['result']['birthday']) {
        $userdata->set('birthday', $profile['result']['birthday']);
    }
    // ... additional data setting ...
    $userfield = array($vbulletin->options['janrain_capture_uuid'] => $profile['result']['uuid']);
    if ($profile['result']['name']['familyName'] && $vbulletin->options['janrain_capture_lname']) {
        $userfield[$vbulletin->options['janrain_capture_lname']] = $profile['result']['name']['familyName'];
    }
    if ($profile['result']['name']['givenName'] && $vbulletin->options['janrain_capture_fname']) {
        $userfield[$vbulletin->options['janrain_capture_fname']] = $profile['result']['name']['givenName'];
    }
    $customfields = $userdata->set_userfields($userfield, true, 'admin');
    $userdata->pre_save();
    // check for errors
    if (!empty($userdata->errors)) {
        foreach ($userdata->errors as $index => $error) {
            echo $error;
        }
        exit;
    } else {
        // save the data
        $vbulletin->userinfo['userid'] = $userid = $userdata->save();
        require_once DIR . '/includes/functions_login.php';
        $vbulletin->session->created = false;
        process_new_login('', false, '');
        update_capture_session(array('access_token' => $vbulletin->capture_session['capture_access_token'], 'refresh_token' => $vbulletin->capture_session['capture_refresh_token'], 'expires_in' => $vbulletin->capture_session['capture_expires_in'], 'transaction_state' => array('capture' => array('password_recover' => $vbulletin->capture_session['capture_password_recover']))));
    }
}
function new_access_token($auth_code, $redirect_uri)
{
    global $vbulletin;
    $command = "oauth/token";
    $arg_array = array('code' => $auth_code, 'redirect_uri' => $redirect_uri, 'grant_type' => 'authorization_code', 'client_id' => $vbulletin->options['janrain_capture_clientid'], 'client_secret' => $vbulletin->options['janrain_capture_clientsecret']);
    $json_data = capture_api_call($command, $arg_array);
    update_capture_session($json_data);
}