                     $services_oauth[$method_name]['permission'] = 0;      
         }
    }
  $services_oauth_serialized = serialize($services_oauth);  
  //drupal_set_message('<pre>'.print_r($user->sid, TRUE).'</pre>');
  db_query("INSERT INTO { oauth_services } (uid, consumer_key, services, timestamp, sid ) VALUES (%d, '%s', '%s', %d, '%s')", $user->uid, $form_state['values']['oauth_consumer_key'], $services_oauth_serialized, $form_state['values']['oauth_nonce_timestamp'], $user->sid) ; 	
  
  $server = _oauth_init_server();
  $q = $_GET['q'];
  unset($_GET['q']);
  try {
    $req = OAuthRequest::from_request();
    oauth_authorize_request_token($form_state['values']['oauth_token']);    
    //drupal_goto($req->get_parameter('oauth_callback'));
  } catch (OAuthException $e) {
    print($e->getMessage() . "\n<hr />\n");
    print_r($req);
    die();
  }
  // Set the $_GET['q'] back to it's original value
  $_GET['q'] = $q;
  
  $form_state['redirect'] = $form_state['values']['oauth_callback'];
}

function new_access_token($request_token, $consumer) {
    if ($object = db_fetch_object(db_query("SELECT * FROM {oauth_token} WHERE type='request' and token_key = '%s'", $request_token->key))) {
      if ($object->authorized) {
        $token = new OAuthToken(user_password(32), user_password(32));
        global $user;
        db_query("INSERT INTO {oauth_token} (consumer_key, type, token_key, token_secret, uid) VALUES ('%s', '%s', '%s', '%s', %d)", $consumer->key, 'access', $token->key, $token->secret, $user->uid);
		db_query("DELETE FROM {oauth_token} WHERE type='request' AND token_key='%s'", $request_token->key);
        db_query("UPDATE {oauth_services} SET token_key='%s' WHERE sid='%s' ", $token->key, $user->sid);
        return $token;
      }
    }
    return null;
  }
}