在node.js中将照片上传到facebook的选项

时间:2011-09-13 11:24:34

标签: javascript facebook node.js flickr picasa

我正在使用nodejs和mongodb构建一个站点,并使用facebook进行身份验证。 我的用户需要上传某些照片,其他人才能查看

由于我使用的是Facebook,我想知道是否应该允许用户将他们的照片上传到他们的Facebook个人资料中,并将链接保存到数据库中,以便以后其他用户可以查看此

这是正确的做法吗? 或者我应该使用flickr或picasa还是别的什么?

我必须在javascript中这样做,我知道facebook支持这个。

请让我知道你的想法。

编辑:

您好,

最后,我发现模块 connect-form 将文件上传到服务器,然后使用模块 facebook-js 将文件上传到Facebook。 我发现“/ me / feed”的fb.api在node.js服务器中运行良好。 但是当我尝试使用http://developers.facebook.com/docs/reference/api/album/中提到的“/ me / photos”图形api时,我收到了错误。那是因为它期望源是“multipart / form-data”。 在我的HTML中,它已经是“multipart / form-data”,否则我不会 获取服务器端的文件。   但是,在服务器端,我不太清楚如何嵌入 这在FB.api中......应该是FB.api中的“source”参数“/ me / 照片“?我尝试使用”source:files.source“,如我所述 例。但它不起作用。可能是我很遗憾 傻......

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

  req.form.complete(function(err, fields, files){
    if (err) {
      next(err);
    } else {

      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;
            }
          console.log('facebook RESPONSE :', response);
          console.log('facebook BODY :', body);
          res.redirect('back');
          //res.render('done', {body: body});
        }
      );

    }
  });

1 个答案:

答案 0 :(得分:0)

您可以选择使用网址将照片上传到Facebook,请阅读以下文章:
https://developers.facebook.com/blog/post/526/

我建议将某些CDN用于像Amazon S3这样非常可靠和可扩展的照片。然后你可以通过一个简单的API调用在Facebook上选择它(在这种情况下不要忘记上传照片的扩展权限)

希望这会有所帮助