我想将状态更新发布到我的Feed并使用facebook图表api添加驻留在磁盘上的照片。
这是可能的还是我必须提供图像的超链接地址?
我知道可以使用Post对象的source
参数向相册添加照片,但我正在寻找一种方法来附加图像文件进行状态更新。
答案 0 :(得分:1)
这绝对是可能的,因为我们使用Facebook C#API将图像直接发布到相册和墙上,这些API发布到图API
我们使用FacebookMediaObject来实现这一目标,但我相信这只会创建所需的帖子表单数据。这是代码,所以你可以看看是否有帮助:
var facebookClient = new FacebookClient(entry.AccessToken);
var mediaObject = new FacebookMediaObject
{
FileName = filename,
ContentType = "image/jpeg"
};
var fileBytes = System.IO.File.ReadAllBytes(filename);
mediaObject.SetValue(fileBytes);
IDictionary<string, object> upload = new Dictionary<string, object>();
upload.Add("name", imagename);
upload.Add("message", message);
upload.Add("@file.jpg", mediaObject);
var result = facebookClient.Post("/" + albumId + "/photos", upload) as JsonObject;
请注意分配mediaObject的“@ file.jpg”字段名称。
希望这会有所帮助。
您可能必须先将图像发布到用户墙,然后收到一个对象ID,然后您可以使用object_id字段在帖子中引用该对象ID。
答案 1 :(得分:0)
您可以在不使用Facebook SDK的情况下执行此操作。以下是通过直接Facebook API上传图片的代码。
var ImagePath = "480.jpg";
var caption = "Description of Photo";
string fullurl = string.Format("https://graph.facebook.com/me/photos?caption={0}&access_token={1}", System.Web.HttpUtility.UrlEncode(caption), accessToken);
WebClient client = new WebClient();
var returnVar = client.UploadFile(fullurl, ImagePath);