【发布时间】:2016-04-11 12:55:42
【问题描述】:
我一直在尝试创建一个需要将多张照片附加到一个帖子的应用程序。这些是我尝试过的以下尝试,
首先我使用facebook-node-sdk 哪个JS SDK 来实现不同的功能,但是官方Js Sdk 没有文件上传选项,然后我在@987654322 的帮助下将照片本身附加/插入到HTTP POST @,使用以下代码-
var form = new FormData();
form.append('file', fs.createReadStream(picPaths[0]));
form.append('message', "Hello"); //Put message
var ACCESS_TOKEN = "ACCESS_TOKEN";
var options = {
method: 'post',
host: 'graph.facebook.com',
path: '{Object-ID}/photos' + '?access_token=' + ACCESS_TOKEN,
headers: form.getHeaders(),
}
var request = https.request(options, function(res) {
console.log(res, false, null);
});
form.pipe(request);
request.on('error', function(error) {
console.log(error);
});
这适用于一张照片。
但正如您在我开始的这个 github.com/Thuzi/facebook-node-sdk/issues/113 中看到的那样,不可能附加一张以上的照片。
正如dantman 所提到的,我说在批处理中查找,可以在上传二进制数据下找到标题为developers.facebook.com/docs/graph-api/making-multiple-requests .让我感到震惊并给我希望的一件事就是这一句话。
attached_files 属性的值可以采用逗号分隔的附件名称列表。
注意这个库或 JS SDK 也无法实现(与照片一起批处理)(如果我错了,请纠正我)
你可以像这样用 curl 发布图片,
curl -F 'access_token=ACCESS_TOKEN' -F 'batch=[{"method":"POST","relative_url":"{Object-Id}/photos","body":"message=Test Post","attached_files":"file1"}]' -F 'file1=@image1' -F 'file2=@image2' https://graph.facebook.com
以上代码贴一张图片
所以我的问题是,可以在 curl 的帮助下将多个图像/二进制文件附加到帖子中,就像 docs 建议的 ..."attached_files":"file1,file2"... 一样,请帮助我解决这个问题,如果你已经这样做了可以请张贴您的代码快照。
谢谢,拉维
【问题讨论】:
标签: javascript node.js facebook-graph-api curl facebook-node-sdk