我正在使用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应用程序安全设置有关吗?
答案 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格式对其进行编码。