使用 C# SDK 将媒体发布到 Facebook 中的用户/页面墙
本文关键字:用户 Facebook SDK 媒体发布 使用 | 更新日期: 2023-09-27 18:36:07
我在我的应用程序中使用了Facebook .Net SDK(http://facebooksdk.net/)。我需要将图像发布到用户或其页面的墙上。
我有这段代码可以尝试这样做:
var postUrl = "<fbid>/feed";
var fbParameters = new Dictionary<string,object>();
fbParameters["message"] = postRequest.FacebookPostContent;
if (postRequest.MediaData != null && postRequest.MediaData.Length > 0)
{
var stream = new MemoryStream(postRequest.MediaData);
if (postRequest.ContentType.Equals("image/jpeg"))
{
postUrl = postUrl.Replace("/feed", "/photos");
fbParameters["picture"] = new FacebookMediaStream { ContentType = postRequest.ContentType, FileName = DateTime.UtcNow.ToString("ddmmyyyyhhmmss") + "-photo.jpeg" }.SetValue(stream);
}
}
if (!string.IsNullOrWhiteSpace(postRequest.FacebookPageId))
{
fbUserID = postRequest.FacebookPageId;
}
postUrl = postUrl.Replace("<fbid>", fbUserID);
var result = await facebookClient.PostTaskAsync(postUrl, fbParameters);
看看我的 postUrl 变量。我使用Facebook中的用户ID或PageID更新,如果它是一个页面,因此帖子应该正确地发布在正确的对象中。如果有图像要上传,请将其添加到字典中。
因此,考虑到这一点,我有以下问题:
- 当 fbUserID 是用户 ID 时,发布完美地发生,带有
- 图像和描述,但是,当 ID 是 PageID 时,只发布描述文本,图像被忽略(用户具有manage_page权限,所以我认为这不是权限问题)。我做错了什么,图像没有发布到页面的墙上?
- 如果我想发布视频而不是图像,我应该在此代码中更改什么?
已经在SO中看到其他技术的许多问题,但从未有过决定性的解决方案。
非常感谢您的帮助,我真的很感激。
问候古腾堡
知道了!
Facebook在页面内创建了一个不同的部分,称为"测试页面上其他人最近发布的帖子",允许发布图像的人将在那里,就像附件图标一样。为了直接发布到页面的提要/墙,我需要做的就是不使用用户access_token(即使用户授予manage_pages权限),只需使用相应页面的/me/accounts 对象中附带的access_token。
关于视频帖子,我只是将 ContentType 设置为"video/mpeg",并在服务器上设置图片参数,而不是在字典上设置图片参数,我用视频字节 [] 设置了视频字段。
谢谢!
问候
作为替代方案,您可以尝试此处答案之一中显示的"共享内容"按钮:
在 Windows Phone 8.1 上使用 Graph REST API 在 Facebook 上上传视频
我发现这比处理授权和手动发布更容易。