Facebook graph api 是否可以发布状态更新并使用facebook graph API添加图像文件?
我想使用facebook graph api将状态更新发布到我的订阅源,并添加一张驻留在磁盘上的照片。 这是可能的还是必须提供图像的超链接地址?Facebook graph api 是否可以发布状态更新并使用facebook graph API添加图像文件?,facebook-graph-api,Facebook Graph Api,我想使用facebook graph api将状态更新发布到我的订阅源,并添加一张驻留在磁盘上的照片。 这是可能的还是必须提供图像的超链接地址? 我知道可以使用对象的源参数将照片添加到相册中,但我正在寻找一种方法,通过附加的图像文件进行状态更新。这是绝对可能的,因为我们已经使用Facebook C#API将图像直接发布到相册和墙上,该API将发布到graph API 我们使用FacebookMediaObject来实现这一点,但我相信这只会创建所需的post表单数据。下面是代码,如果有帮助,您可
我知道可以使用对象的
源
参数将照片添加到相册中,但我正在寻找一种方法,通过附加的图像文件进行状态更新。这是绝对可能的,因为我们已经使用Facebook C#API将图像直接发布到相册和墙上,该API将发布到graph API
我们使用FacebookMediaObject来实现这一点,但我相信这只会创建所需的post表单数据。下面是代码,如果有帮助,您可以查看:
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;
var facebookClient=新facebookClient(entry.AccessToken);
var mediaObject=新的FacebookMediaObject
{
FileName=FileName,
ContentType=“图像/jpeg”
};
var fileBytes=System.IO.File.ReadAllBytes(文件名);
mediaObject.SetValue(文件字节);
IDictionary upload=新字典();
上传。添加(“名称”,图像名称);
上传。添加(“消息”,消息);
upload.Add(“@file.jpg”,mediaObject);
var result=facebookClient.Post(“/”+albumId+“/photos”,upload)作为JsonObject;
注意分配给mediaObject的字段名“@file.jpg”
希望这有帮助
更新
您可能需要先将图像发布到用户墙上,然后收到一个对象ID,您可以在post中使用对象ID字段引用该ID。这是绝对可能的,因为我们已经使用Facebook C#API将图像直接发布到相册和墙上,该API将发布到graph API 我们使用FacebookMediaObject来实现这一点,但我相信这只会创建所需的post表单数据。下面是代码,如果有帮助,您可以查看:
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;
var facebookClient=新facebookClient(entry.AccessToken);
var mediaObject=新的FacebookMediaObject
{
FileName=FileName,
ContentType=“图像/jpeg”
};
var fileBytes=System.IO.File.ReadAllBytes(文件名);
mediaObject.SetValue(文件字节);
IDictionary upload=新字典();
上传。添加(“名称”,图像名称);
上传。添加(“消息”,消息);
upload.Add(“@file.jpg”,mediaObject);
var result=facebookClient.Post(“/”+albumId+“/photos”,upload)作为JsonObject;
注意分配给mediaObject的字段名“@file.jpg”
希望这有帮助
更新
您可能需要先将图像发布到用户墙上,然后接收一个对象ID,您可以在post中使用对象ID字段引用该对象ID。您无需使用Facebook SDK即可完成此操作。下面是通过DirectFacebookAPI上传图像的代码
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);
您无需使用Facebook SDK即可完成此操作。下面是通过DirectFacebookAPI上传图像的代码
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);
谢谢你的意思是先将照片上传到相册,然后在墙上发布更新,并链接到此照片?如果你在帖子中使用用户id而不是相册id,那么它将转到他们的默认照片集,我相信问题在于,上述内容实际上不是状态更新,而是照片上传。尝试此操作时,照片已添加到相册中,但我必须单击相册以获取此信息,因此状态提要未更新。不过,当我想把它贴到墙上的相册上时,它确实起到了预期的作用。谢谢。你的意思是先将照片上传到相册,然后在墙上发布更新,并链接到此照片?如果你在帖子中使用用户id而不是相册id,那么它将转到他们的默认照片集,我相信问题在于,上述内容实际上不是状态更新,而是照片上传。尝试此操作时,照片已添加到相册中,但我必须单击相册以获取此信息,因此状态提要未更新。然而,当我把我想要的相册贴到墙上时,它确实起到了预期的作用。