code: function executeApi(apiName, opts, extras){
  
    var emitter = new Emitter()
      , apiItem
      , token = opts.access_token
      , form, method, path
      , url
      ;
    
    if(/^(https?:\/\/|\/)/.test(apiName)){
      if(apiName.indexOf('/') === 0){
        url = api.HOST + apiName;
      }else{
        url = apiName;
      }
      extras = extras || {};
      method = extras.method;
      
    }else{
      apiItem = getApiItem(apiName);
      if(!apiItem){
        process.nextTick(function(){
          emitter.emit('error', 'no or not support api: ' + apiName);
        });
        return emitter;
      }
      
      path = apiItem.path;
      method = apiItem.method;
      
      url = api.HOST + api.PREPATH + path + '.json';
    }
    
    if(method == 'post'){
      form = opts;
      opts = {};
    }
    
    delete opts.access_token;
    
    request({
        url: url + '?access_token=' + token
      , method: method
      , qs: opts
      , form: form
    }, function(err, res, reply){
      if(err){
        emitter.emit('error', err);
      }else{
        try{
          reply = JSON.parse(reply);
          emitter.emit('success', reply);
        }catch(e){
          emitter.emit('error', reply);
        }
      }
    });
    
    return emitter;
  }
docs: 执行微博 api
  @param {String} apiName  执行的 api 指令: group.name
  以 https? 或者 / 开头的字符串被认为是原始的 api 请求地址
  @param {Object} opts   api 请求参数
  @param {String} opts.access_token 所有请求必须
  @param {Object} extras 附加信息
  @param {String} extras.method HTTP 请求方法