C# 将参数传递到Facebook Open Graph API

C# 将参数传递到Facebook Open Graph API,c#,facebook-graph-api,facebook-c#-sdk,C#,Facebook Graph Api,Facebook C# Sdk,我正在尝试使用C#SDK将视频上传到Facebook开放图。视频似乎上传得很好,我得到了活动的Id,但只显示了示例元数据 经过一番挖掘,我发现: 在能够为用户发布Open Graph操作并在步骤3中定义其相应的连接对象类型之前,您现在需要创建一个可公开访问的网页,该网页使用Open Graph元标记表示该对象。创建此对象页面后,可以使用Graph API发布操作 因为这是一个客户端应用程序,所以我没有一个可以参考Facebook的网页。那么如何传入正确的参数呢 这是我的密码: var param

我正在尝试使用C#SDK将视频上传到Facebook开放图。视频似乎上传得很好,我得到了活动的Id,但只显示了示例元数据

经过一番挖掘,我发现:

在能够为用户发布Open Graph操作并在步骤3中定义其相应的连接对象类型之前,您现在需要创建一个可公开访问的网页,该网页使用Open Graph元标记表示该对象。创建此对象页面后,可以使用Graph API发布操作

因为这是一个客户端应用程序,所以我没有一个可以参考Facebook的网页。那么如何传入正确的参数呢

这是我的密码:

var parameters = new Dictionary<string, object>();
parameters["source"] = new FacebookMediaObject { ContentType = "video/mpeg", FileName = "video.mpeg" }.SetValue(File.ReadAllBytes(@"D:\sample video.MP4"));
parameters["og:title"] = "Sample video";
parameters["title"] = "Sample video";
parameters["og:description"] = "Test description";
parameters["highlight"] = "http://samples.ogp.me/287287444686523"; // If I don't put this, the upload fails
fb.PostAsync("/me/myobjectname:share", parameters);
var参数=新字典();
参数[“source”]=新的facebook媒体对象{ContentType=“video/mpeg”,FileName=“video.mpeg”}.SetValue(File.ReadAllBytes(@“D:\sample video.MP4”);
参数[“og:title”]=“示例视频”;
参数[“title”]=“示例视频”;
参数[“og:说明”]=“测试说明”;
参数[“突出显示”]=“http://samples.ogp.me/287287444686523"; // 如果我不放这个,上传就会失败
fb.PostAsync(“/me/myobjectname:share”,参数);

谢谢

对于版本6,您可以执行以下操作:

var fb = new FacebookClient(accessToken);
string attachementPath = @"C:\image.jpg";

using (var stream = File.OpenRead(attachementPath))
{
    dynamic result = fb.Post("me/photos",
                                new
                                    {
                                        message = "upload using Facebook C# SDK",
                                        file = new FacebookMediaStream
                                                {
                                                    ContentType = "image/jpg",
                                                    FileName = Path.GetFileName(attachementPath)
                                                }.SetValue(stream)
                                    });
}

更多详细信息。

对于版本6,您可以执行以下操作:

var fb = new FacebookClient(accessToken);
string attachementPath = @"C:\image.jpg";

using (var stream = File.OpenRead(attachementPath))
{
    dynamic result = fb.Post("me/photos",
                                new
                                    {
                                        message = "upload using Facebook C# SDK",
                                        file = new FacebookMediaStream
                                                {
                                                    ContentType = "image/jpg",
                                                    FileName = Path.GetFileName(attachementPath)
                                                }.SetValue(stream)
                                    });
}

更多详细信息。

我正在使用SDK的第6版。但是,您的代码没有利用OpenGraphAPI中的自定义对象。这就是我想要弄明白的。我正在使用SDK的版本6。但是,您的代码没有利用OpenGraphAPI中的自定义对象。这就是我想弄明白的。