我/来自不同领域的图片

时间:2011-08-27 00:05:38

标签: facebook-graph-api facebook-c#-sdk

我试图在他们的文档中在facebook的网站上找到这个,但到目前为止没有运气。我相信其他人之前必须遇到这种情况。

我使用Amazon S3存储图像。我提前不知道如果我将我的桶命名为带有子域名的域名,我可以用这种方式链接,所以在我移动所有图片之前,我必须链接到mybucket.s3.amazonaws.com域。当我从那里包含一张带有帖子到墙上的图片时,图片不会显示出来。如果我将图片更改为服务器本身的图片,则会显示图片。看来图片的域名必须与我的应用匹配?我看着bugzilla并没有看到这提到。 Facebook的论坛说要在这里发布问题。

我正在使用CodePlex的C#Facebook SDK。

我的代码看起来像(删除了错误处理和身份验证检查):

        var client = new FacebookClient(FACEBOOK_APP_ID, FACEBOOK_SECRET);
        client.AccessToken = facebook.AccessToken;
        var parameters = new Dictionary<string, object>();
    parameters.Add("name", name);
        parameters.Add("caption", title);
        parameters.Add("message", message);
        parameters.Add("link", link);
        parameters.Add("source", link);
        parameters.Add("picture", imageUrl);
        client.Post("me/feed", parameters);

我确认imageUrl确实有正确的图片,域名不匹配。亚马逊s3上的图片具有公共读取权限。我可以从浏览器中查看它,所以我不认为这是一个权限问题。我尝试了几个不同的图片同样的问题。到目前为止,只有当图片出现在服务器本身时才有效。

所以,我的问题是,这是我的问题,还是facebook会阻止与应用程序中指定的域名不匹配的图片?

3 个答案:

答案 0 :(得分:4)

您可以从该网址上传图片,然后在帖子中添加其对象ID。

请参阅http://developers.facebook.com/blog/post/526/?ref=nf

通过网址将照片上传到图谱API

  

今年早些时候,我们发布了直接上传照片的支持   通过Graph API。这需要将照片作为MIME编码发送   形式领域。我们现在正在增强我们的照片上传功能   通过提供URL来介绍上传照片的功能   图片。这简化了许多用例的照片管理:

     
      
  • 在Amazon S3或类似产品上托管其图像的应用开发者   服务可以直接将S3 URL传递给Facebook而无需使用   将文件下载到他们的应用程序服务器只上传它   再次到Facebook。这提高了性能并降低了成本   开发者。
  •   
  • 在没有良好支持的平台上编写的应用程序   多部分文件上传可以更轻松地创建新照片。
  •   
     

要通过网址上传照片,只需向其发出HTTP POST即可   ALBUM_ID /照片,其中url字段设置为您的照片的网址   希望上传。您需要publish_stream权限才能执行此操作   操作。您还可以包含可选的消息参数来设置a   照片的标题。

答案 1 :(得分:4)

我也面临同样的问题。根据我的观察,当图片网址有多个子域时,facebook似乎不喜欢它。

我为同一张图片尝试了以下2个网址变体..

mybucket.s3.amazonaws.com - 抛出错误

s3.amazonaws.com/mybucket - 工作正常

:picture => 'http://mybucket.s3.amazonaws.com/footprints/15/coverimgs/medium.jpg'
OAuthException: (#100) picture URL is not properly formatted

:picture => 'http://s3.amazonaws.com/mybucket/footprints/15/coverimgs/medium.jpg'
{"id"=>"587472956_10150280873767957"}

现在我必须弄清楚如何在将图像传递给FB图形API时更改图像的URL结构。

答案 2 :(得分:0)

我会log it as a bug。如果确实如此,我有点怀疑,你可以在你自己的域上为每个重定向到亚马逊网址的图片创建301重定向。