Я пытаюсь загрузить что-то на сервер Facebook.Их официальная документация гласит:
С помощью токена из диалогового окна вы можете отправить следующий вызов нашему API Graph для отправки вашего .zip.Обратите внимание, что мы используем видеодомен, но это намеренно, поскольку этот URL настроен для получения больших загрузок.
curl -X POST https://graph-video.facebook.com/{App ID}/assets
-F 'access_token={ASSET UPLOAD ACCESS TOKEN}'
-F 'type=BUNDLE'
-F 'asset=@./{YOUR GAME}.zip'
-F 'comment=Graph API upload'
Я пытаюсь преобразовать этот запрос curl в node.jsиспользуя модуль request
.
const myzip = zipDir+file.appName+".zip"
console.log(myzip)
var url = "https://graph-video.facebook.com/"+file.appId+"/assets";
const options = {
url: url,
headers: {
"Content-Type": "application/octet-stream"
}
}
var req = request.post(options, function (err, resp, body) {
console.log('REQUEST RESULTS:', err, resp.statusCode, body);
if (err) {
console.log('Error!');
reject();
} else {
console.log('URL: ' + body);
resolve();
}
});
var form = req.form();
var zipReadStream = fs.createReadStream(myzip,{encoding: "binary"})
zipReadStream.setEncoding('binary')
form.append('asset', zipReadStream);
form.append("access_token", file.token);
form.append("type", "BUNDLE");
form.append("comment", mycomment)
Несмотря на то, что я установил заголовки на "Content-Type": "application/octet-stream"
, я все равно получаю сообщение об ошибке от Facebook, что
OAuth "Facebook Platform" "invalid_request" "(#100) Invalid file. Expected file of one of the following types: application/octet-stream"
Также, когда я пытаюсь войти в системузапросить получение содержимого как 'Content-Type': 'multipart/form-data
, а не как application/octet-stream
событие, хотя я явно указал это.