2012-03-07 44 views
0

我正在使用Facebook C#SDK为了张贴在我的商业Facebook页面上。对于我在网站上有的产品,我想在墙上张贴有图片和说明的帖子。Facebook:墙贴'图片'元素被忽略

我有下面的代码是:

var args = new Dictionary<string, object>(); 
    args["message"] = "Product description ... "; 
    args["caption"] = "Last offer !!!"; 
    args["description"] = "Product description ... "; 
    args["name"] = "Product name ... " 
    //picture field is the link to my image on my site 
    args["picture"] = "http://mydomain.com" + Url.Action("ImageFile", "Files", new {sizes = "400x650", fileName = file.FileName}); 
    args["link"] = Url.Abs(Url.Action("Details", "Product", new {id = id})); 

所有字段都ok,除了图像。图像完全被忽略,不会显示在墙上。

我的目标是与我在“我的状态”字段中手动粘贴产品详细信息的情况具有相同的行为,并且会生成包含第一张图片和第一段的消息。

PS:这可以与一些Facebook应用程序安全设置相关吗?

回答

0

经过很多小时的调试,我发现了这个问题。首先要注意的是我使用的是MVC 3.问题出在我的链接格式上。下一个代码的工作原理如下:

var pictureLink = "http://mydomain.com" + Url.Action("ImageFile", "Files", new {sizes = "400x650", fileName = file.FileName}); 
pictureLink = Server.UrlDecode(pictureLink); 
args["picture"] = pictureLink; 

在我的情况下,链接包含一些编码的字符。您必须将该链接发送至Facebook,并将其以url格式进行编码。

+0

fb c#sdk应该自动为您解码。你使用的是哪个版本的sdk? – prabir 2012-03-07 17:07:51

0

若要进行故障排除,请删除args [“link”]并查看它是否发布图像。如果没有,那么Facebook试图访问的图片url的权限有问题。如果确实发布了没有链接参数的图片,请将链接参数更改为“操作”参数“名称”和“链接”,以查看是否可以将发布中的链接包含在内。