0

有谁知道为什么图片属性在 Facebook UI 调用中不起作用?

function postToWallUsingFBUi()
    {   
        var data=
        {
        method: 'stream.publish', 
        message: "Posted using FB.ui and picture.",
        display: 'iframe',
        caption: "Caption",
        name: "Name",
        //ver 1 picture: 'http://www.somedomain.com/albums/s339/rockaja/fb-520.png',   
        //ver 2 picture: '@Url.Action("Action", "Controller", new { PageId = Model.PageTabId }, Request.Url.Scheme)',
        picture: 'https://localhost/MyVirtualDirectory/Controller/Action/283659015078395',
        link: "http://www.mydomain.com/",  // Go here if user click the picture
        description: "Description field",
        actions: [{ name: 'action_links text!', link: 'http://www.mydomain.com' }]           
        }
        FB.ui(data, onPostToWallCompleted);
    }

如您所见,图片属性使用来自本地主机的图片。如果我将此 URL 粘贴到浏览器的地址字段中,我会得到预期的图片。

我还注释掉了其他两个版本:版本 1 按预期正常工作,但版本 2 不工作(这是一个 ASP.NET MVC 调用,但这一事实不影响结果)。

可能是因为我请求了 localhost-ed 图片?!

4

1 回答 1

0

我从来没有在 FB API 上工作过,所以请接受我的建议。

根据我对 Facebook 工作原理的理解,您在用户墙上分享的任何图片都会首先进入 FB 的数据存储,并且总是从该存储中提取。

在这里,Facebook API 可能会从您提供的 URL 下载图片并将其推送到自己的商店中,然后再将其发布到用户的墙上。当您使用 localhost url 时,下载图片的调用显然会失败。

必须有另一个版本的 API,您应该能够将图片内容作为字节数组发送。如果有,那么您可以自己从磁盘加载图片并在 API 中发送字节数组

于 2012-11-18T10:14:30.860 回答