Facebook:墙贴'图片'元素被忽略

时间:2012-03-07 09:03:09

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

我正在使用Facebook C#SDK以便在我的商家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}));

除图像外,所有字段都可以。图像完全被忽略,不会显示在墙上的帖子中。

我的目标是与我在“我的状态”字段中手动粘贴产品详细信息时的行为相同,并生成包含第一个图像和第一个段落的消息。

PS:这可能与某些Facebook应用程序安全设置有关吗?

2 个答案:

答案 0 :(得分:0)

要进行故障排除,请删除参数[“link”]并查看是否发布了图像。如果没有,那么facebook试图访问的图片网址的权限有问题。如果它确实发布了没有link参数的图片,那么将link参数更改为“action”参数“name”和“link”,看看你是否可以将你的链接包含在帖子中。

答案 1 :(得分: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格式对其进行编码。