со стороны сервера node.js: загрузка фотографий на Facebook - PullRequest
1 голос
/ 16 сентября 2011

Согласно документации Facebook, http://developers.facebook.com/docs/reference/api/album/, для загрузки фотографии, тип источника должен быть "multipart / form-data"

Теперь я получил файл изображения с клиентской стороны на сервер в файле node.js, используя 'connect-form'. и я использую модуль «facebook-js» для загрузки фотографии на Facebook как,

app.post('/', function(req, res, next){

  req.form.complete(function(err, fields, files){
    if (err) {
      next(err);
    } else {
      console.log('uploaded ', files.source.filename, 'to', files.source.path);

      fb.apiCall('POST', '/me/photos',
        {access_token: fields.access_token, 
             message: fields.message, 
             **source:files.source**},
        function (error, response, body) {
            if (error) {
                console.log('Error in facebook Photo UPLOAD', error);
                return;
            }
          res.redirect('back');
        }
      );

Выше выдается ошибка, поскольку файл.s.source не закодирован как "multipart / form-data". Могу ли я знать, что нужно сделать здесь? Нужно ли помещать файл в память, а затем использовать его в источнике?

1 Ответ

1 голос
/ 16 сентября 2011

Вы не можете сделать это, используя текущую реализацию facebook-js (которую я предполагаю this ). Он использует библиотеку запросов узла, которая, похоже, не имеет встроенной поддержки для отправки multipart/form-data HTTP-запросов. Вы можете реализовать отправку multipart / form-data (см. this для более длинного примера), но вам, вероятно, придется раскошелиться на оригинальную библиотеку.

...