Facebook 使用mikeal请求发布(通过流媒体?)
我正试图使用mikeal请求库发布一张照片,但帖子来自empFacebook 使用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发布一张图片,这意味着
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){
});