使用jssdk将映像上载到FB登台服务器会返回错误

时间:2013-08-09 22:39:40

标签: facebook

我正在创建FB应用程序,上传并将图像发布到用户的墙上,此时我已经陷入困境。我想在FB登台服务器上传图像,因为我的服务器太小了。当我尝试使用此代码发布图像时

FB.api('/me/staging_resources?access_token='+access_token, 'post', {file: file_uri}, function(response) {
        if (!response) {
       alert('Error occurred.');
     } else if (response.error) {
       console.log('Error: ' + response.error.message);
     } else {
       console.log('File uri is ' + response.uri );
       file_uri = response.uri;
     }
    });

其中file_uri是包含https地址的变量,我经常收到错误"(#100) Invalid file. Expected file of one of the following types: image/jpg, image/jpeg, image/gif, image/png"。我也从Graph API Explorer测试了同样的错误。 我尝试了所有的东西,把url放到生成图像的文件中,直接将url放到图像上,http,https,来自其他网站的一些图像......总是一样的。 有没有人对我有任何帮助,也许我错过了什么?

提前致谢, 尼古拉

修改 - 解决方案

再次感谢Jason,我成功获得了图像,如果有人遇到这个问题,解决方案是制作单独的curl文件,用图像和访问令牌的url调用https://graph.facebook.com/me/staging_resources,然后在js文件中一个简单的电话

$.get('/curl.php?url='+image_url+'&access_token='+access_token,function(response){
        console.log(response);
});

1 个答案:

答案 0 :(得分:0)

根据documentation,file参数需要实际是文件数据(如enctype='multipart/form-data' HTTP POST中所示)。作为一个例子,他们通过curl显示发布:

curl -X POST \
  https://graph.facebook.com/me/staging_resources \
  -F "file=@images/prawn-curry-1.jpg" \
  -F "access_token=$USER_ACCESS_TOKEN"

它不能将URI解析为文件(您必须执行提取)