如何使用twit使用媒体POST请求执行更新?

时间:2013-09-25 04:17:13

标签: json node.js api twitter

我正在使用twit。更新状态(没有媒体)工作正常,但update with media无法正常工作 这是我的代码(与快递一起使用):

//client side

<form id="tweeter" action='/image' method='POST' >
  <input type="text" name="tw" id="tw" />
  <input type='file' name='img' id='img' /> 
  <input type="submit" value="submit" /> 
</form>


 //server side

app.post('/image',function(req,res){
  var f= "./" +req.body.img;
  console.log(req.body.img);
  T.post('statuses/update_with_media', 
    { status: req.body.tw, media: f }, 
    function(err, reply) {
      console.log('ERROR:' +err);
      console.log('REPLY:' +reply);
    }
  );
});

我得到的错误是'缺少或无效的网址参数' 我应该如何通过media[]发送图像文件?

1 个答案:

答案 0 :(得分:1)

确保您的表单有enctype="multipart/form-data"而不是req.body.img尝试使用req.files.img

检查T.post想要的媒体参数输入类型,你可以试试base64

示例客户端代码:

<form id="tweeter" enctype="multipart/form-data" action='/image' method='POST' >
   <input type="text" name="tw" id="tw" />
   <input type='file' name='img' id='img' /> 
   <input type="submit" value="submit" /> 
</form>

示例服务器代码:

app.post('/image',function(req,res){
    var f = fs.readFileSync(req.files.img.path,'base64');
    T.post('statuses/update_with_media', {status: req.body.tw, media:f}, function(err, reply) {
        console.log('ERROR:'+err);
        console.log('REPLY:'+reply);
    });
});