throw new Exception("Couldn't look up token {$request_token}; database error: " . mysql_error());
 }
 $cols = mysql_fetch_array($result);
 $request_token_secret = $cols[0];
 $sprink = new Sprinkles();
 $consumer_data = $sprink->oauth_consumer_data();
 list($token, $token_secret) = get_oauth_access_token($consumer_data, $request_token, $request_token_secret);
 if (!$token || !$token_secret) {
     throw new Exception("Getting OAuth access token from Get Satisfaction failed.");
 }
 $result = mysql_query("update sessions set token = '" . mysql_real_escape_string($token) . "', token_secret = '" . mysql_real_escape_string($token_secret) . "' where token = '" . mysql_real_escape_string($request_token) . "'");
 if (!$result) {
     throw new Exception("Failed to store auth tokens on oauth response");
 }
 $sprink = new Sprinkles();
 $sprink->open_session($token);
 if (!$sprink->site_configured() && request_param('first_login')) {
     $user = $sprink->current_user();
     if (!$user) {
         throw new Exception("Internal error: No current user just after opening session.");
     }
     $sprink->set_admin_users(array($user['canonical_name']));
     $result = $sprink->set_site_settings(array('configured' => 'Y'));
     if (!$result) {
         die(mysql_error());
     }
 }
 $return = request_param('return');
 if (!$return) {
     $return = 'helpstart.php';
 }