Facebook 使用mikeal请求发布(通过流媒体?)

Facebook 使用mikeal请求发布(通过流媒体?),facebook,node.js,facebook-graph-api,request,Facebook,Node.js,Facebook Graph Api,Request,我正试图使用mikeal请求库发布一张照片,但帖子来自emp request = require('request') fs = require("fs") fs.createReadStream('zebra.jpg').pipe(request.post('http://localhost:2000')) (在localhost:2000上,我现在有一个简单的回音) 现在,这是可行的,但我想使用标准POST格式传递其他参数 我实际上想做的是通过API向Facebook发布一张图片,这意味着

我正试图使用mikeal请求库发布一张照片,但帖子来自emp

request = require('request')
fs = require("fs")
fs.createReadStream('zebra.jpg').pipe(request.post('http://localhost:2000'))
(在localhost:2000上,我现在有一个简单的回音)

现在,这是可行的,但我想使用标准POST格式传递其他参数

我实际上想做的是通过API向Facebook发布一张图片,这意味着我想包括一个标题,可能还有更多的字段

如果流媒体不是正确的方法(尽管我看到了很多好处,比如不需要临时文件和缓冲区),那么正确的方法是什么

谢谢你的建议

UPD:

我已经做到了这一点:

fs.createReadStream('zebra.jpg').pipe(graph.post('418533674856800/photos', 
    {message:"I'm a new API photo!", name:"API Photo",privacy:{value:"EVERYONE"}},                  
                    function(err, res) {
                          console.log(res);
            }));
但它又回来了

dest.on('drain', ondrain);
   ^
TypeError: Object #<Graph> has no method 'on'
at [object Object].pipe (stream.js:52:8)
at Request._callback (c:\My Stuff\Creatiff\PRAGmatiki\Web-node.js\postaspage.js:66:36)
at Request.callback (c:\My Stuff\Creatiff\PRAGmatiki\Web-node.js\node_modules\request\main.js:119:22)
at Request.<anonymous> (native)
at Request.emit (events.js:70:17)
at Request.<anonymous> (c:\My Stuff\Creatiff\PRAGmatiki\Web-node.js\node_modules\request\main.js:521:16)
at Request.emit (events.js:67:17)
at IncomingMessage.<anonymous> (c:\My Stuff\Creatiff\PRAGmatiki\Web-node.js\node_modules\request\main.js:483:14)
at IncomingMessage.emit (events.js:88:20)
at HTTPParser.parserOnMessageComplete [as onMessageComplete] (http.js:130:23)
dest.on('drain','ondrain');
^
TypeError:对象#没有“on”方法
位于[object].pipe(stream.js:52:8)
应请求。\回调(c:\My Stuff\Creatiff\Practicaki\Web node.js\postaspage.js:66:36)
at Request.callback(c:\My Stuff\Creatiff\practiki\Web node.js\node\u modules\Request\main.js:119:22)
应要求。(本地人)
at Request.emit(events.js:70:17)
应要求。(c:\My Stuff\Creatiff\practicaki\Web node.js\node\u modules\request\main.js:521:16)
at Request.emit(events.js:67:17)
在收到消息时。(c:\My Stuff\Creatiff\practicaki\Web node.js\node\u modules\request\main.js:483:14)
在IncomingMessage.emit(events.js:88:20)
在HTTPParser.parserOnMessageComplete[作为onMessageComplete](http.js:130:23)

这是因为我在流媒体吗?请帮忙

我不知道什么是
graph
(没有出现在mikeael的文档中),但它没有实现
Stream
接口,因此不能与
pipe()一起使用


要在一篇文章中发送多个部分,您需要使用类型为的请求。的最新版本对此提供了实验支持(附带示例)。其他模块也支持它(例如Pineder,尽管上次我查看时流支持有点缺乏)。

Graph是Facebook Graph API,我不理解这些示例,我应该将该文件称为“字段”吗?面条似乎是完全不同的东西,还是我弄错了?上面写着“Node.JS的简单oodlerestapi包装器”,Oodle似乎是某种分类的board.oops,我的意思是调用字段“file”;)这个例子既没有提到“字段”也没有提到“文件”,所以我不知道你是从哪里得到这个想法的。我发现“海报”模块同时也能起到作用,但针头看起来不错,我还没有看到,所以谢谢你指出:)别管字段的事,我想我到了——谢谢你的帮助
var path = require('path'), 
    mime = require('mime');

request({
    url: 'http://localhost:2000',
    headers: {
        'content-type' : 'multipart/form-data'
    },
    method: 'POST',
    multipart: [{ 
        'Content-Disposition' : 'form-data; name="inputname"; filename="' + path.basename('zebra.jpg') + '"',
        'Content-Type' : mime.lookup('zebra.jpg'),
        body: fs.readFileSync('zebra.jpg')
    },{ 
        'Content-Disposition' : 'form-data; name="input[array]"; filename="' + path.basename('zebra1.jpg') + '"',
        'Content-Type' : mime.lookup('zebra1.jpg'),
        body: fs.readFileSync('zebra1.jpg')
    },{ 
        'Content-Disposition' : 'form-data; name="input[array]"; filename="' + path.basename('zebra2.jpg') + '"',
        'Content-Type' : mime.lookup('zebra2.jpg'),
        body: fs.readFileSync('zebra2.jpg')
    },{
        'Content-Disposition' : 'form-data; name="text"',
        body: "text input"                  
    }]
}, 
function(err, res, body){
});