Facebook Ads API 调用了发布广告 - 它需要将图像附加到帖子,并在 creative_spec 中设置文件名,然后在 multipart 中附加具有该名称的图像。
FacebookMedia 对象似乎适合这一点,但是我在代码中看到每个帖子只能附加 1 个媒体对象。是否有一个原因?
这是一些(蹩脚的,第一次通过)代码:
dynamic adgroup = new ExpandoObject();
adgroup.method = "ads.createAdGroups";
adgroup.account_id = AdAccount.FbAdAccountId;
adgroup.adgroup_specs = new List<dynamic>();
dynamic adgroup_specs = new ExpandoObject();
adgroup_specs.campaign_id = campaignid;
adgroup_specs.name = ad.campaign_name;
adgroup_specs.status = 1;
adgroup_specs.bid_type = 1;
adgroup_specs.max_bid = ad.max_bid;
adgroup_specs.targeting = (dynamic)(new ExpandoObject());
adgroup_specs.targeting.countries = new List<string>();
adgroup_specs.targeting.countries.Add("US");
adgroup_specs.creative = (dynamic)(new ExpandoObject());
adgroup_specs.creative.title = ad.AdTitleText;
adgroup_specs.creative.body = ad.AdCopyText;
adgroup_specs.creative.link_url = ad.url; // TODO: ASk Bill
adgroup_specs.creative.file_name = ad.ImageId + "_" + ad.ImageName;
var image = dc.Images.Where(r => r.ImageId == ad.ImageId).FirstOrDefault();
adgroup.adgroup_specs.Add(adgroup_specs);
然后我需要附上所有的图像,不知道该怎么做。他们必须在帖子中显示他们的名字,所以我想我可以将它们附在任何地方:
var images = (from image in dc.Images
where image_ids.Contains(image.ImageId)
select image).Distinct();
var p = adgroups as IDictionary<String, object>;
foreach (var i in images)
{
FacebookMediaObject fmo = new FacebookMediaObject();
fmo.FileName = i.ImageId + "_" + i.Name;
fmo.SetValue(i.ImageData);
fmo.ContentType = "image/png";
p.Add(i.ImageId + "_" + i.Name, fmo);
}
dynamic dresult = FbApp.Post(adgroup);
编辑:所以这甚至不适用于一张图片,我有一个广告素材列表,当没有图片发布时,它会发布正确的数据,当与图片一起发布时,它看起来像这样(查看 adgroup_specs):
主机:api.facebook.com 内容长度:5945 预期:100-继续
--8cdad9aeb95b79c 内容处置:表单数据;名称=“方法”
ads.createAdGroups --8cdad9aeb95b79c 内容处置:表单数据;名称="account_id"
106925396 --8cdad9aeb95b79c 内容处置:表单数据;名称="广告组规格"
System.Collections.Generic.List`1[System.Object] --8cdad9aeb95b79c 内容处置:表单数据;名称="api_key"
--8cdad9aeb95b79c 内容处置:表单数据;名称="格式"
json-strings --8cdad9aeb95b79c 内容配置:表单数据;filename="667_Screen shot 2011-02-24 at 3.46.29 PM.png" Content-Type: image/png
它正在错误地转换 List<>。这适用于没有多部分的普通帖子。这是一个错误吗?