0

我正在创建将图像上传和发布到用户墙上的 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 文件,https://graph.facebook.com/me/staging_resources使用图像的 url 和访问令牌调用,然后在 js 文件中进行简单调用

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

1 回答 1

0

根据文档,文件参数需要实际是文件数据(如在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(您必须执行提取)

于 2013-08-09T22:45:27.493 回答