在C#中创建Facebook事件返回#100无效参数

在C#中创建Facebook事件返回#100无效参数,c#,json,facebook,facebook-graph-api,webclient,C#,Json,Facebook,Facebook Graph Api,Webclient,我正试图整合一个小应用程序,让我可以在Facebook上创建活动。我已经安装了我的Facebook应用程序,并使用下面的代码成功测试了通过该应用程序发送到我的订阅源的帖子 wc.UploadString("https://graph.facebook.com/me/feed", "access_token=" + AccessToken + "&message=" + Message); 当我试图把事情推进下一步时,我只是碰上了一堵砖墙 我编写的代码如下: JavaScriptSeri

我正试图整合一个小应用程序,让我可以在Facebook上创建活动。我已经安装了我的Facebook应用程序,并使用下面的代码成功测试了通过该应用程序发送到我的订阅源的帖子

wc.UploadString("https://graph.facebook.com/me/feed", "access_token=" + AccessToken + "&message=" + Message);
当我试图把事情推进下一步时,我只是碰上了一堵砖墙

我编写的代码如下:

JavaScriptSerializer ser = new JavaScriptSerializer();
wc.UploadString("https://graph.facebook.com/me/events?" + "access_token=" + AccessToken, ser.Serialize(rawevent));
rawevent是我编写的一个小对象,它将事件的元素放在一起,这样我就可以在我的应用程序中传递它。 我正在使用一种类似的方法,使用ser.Deserialize解析从Facebook返回的用户数据,所以我相信这也应该是另一种方式

暂时把上面的代码放在一边,我也尝试过简单地将纯文本以不同的格式和不同的参数级别放入其中,但似乎没有任何效果

我处理这件事的方式有问题吗?我已经阅读了所有我能得到的东西,我能找到的关于创建事件的样本很少,当它们出现时,它们不在C#中

如果能在这方面得到任何帮助,我将不胜感激。如果你有一个干净的JSON代码副本,我可以看看,看看我的代码应该在哪里调整,我会很感激

我在下面提供了serial.Serialize(rawevent)调用生成的内容的副本:

{"name":"Dev party!","start_time":"1308360696.86778","end_time":"1310952696.86778","location":"my house!"}
编辑:

感谢下面的bronsoja,我使用下面的代码成功地将一个事件发布到Facebook

            System.Collections.Specialized.NameValueCollection nvctest = new System.Collections.Specialized.NameValueCollection();
            nvctest.Add("name", "test");
            nvctest.Add("start_time", "1272718027");
            nvctest.Add("end_time", "1272718027");
            nvctest.Add("location", "myhouse");
            wc.UploadValues("https://graph.facebook.com/me/events?" + "access_token=" + AccessToken, nvctest);

FB文档中的graph api示例中的所有过帐示例都使用curl-F显示,这表示值将作为标准表单数据过帐。就像您在第一个示例中所做的那样,只使用键值对


该错误可能是由于发送JSON造成的。如果您使用WebClient,您可以简单地使用数据创建NameValueCollection,并使用WebClient.UploadValues发送请求。

我最近发现,当我们试图发布数据时,Facebook返回(#100)无效参数,而文件中已经有同名记录。例如,如果您正在通过API创建一个名为“foo”的好友列表,则提交另一个相同名称的请求将立即返回该错误

在测试事件中,您可能会在每次测试后删除“Dev party!”事件,或者更改时间,因为您不希望两个事件发生冲突。但我想知道,如果您再次看到这个错误,您是否复制了wc.UploadValues(…)语句作为测试。您正在删除“测试”事件或更改名称,但没有注意到两个同名事件可能返回错误

这里真正糟糕的是错误以OAutheException的形式返回,这似乎是非常错误的。这不是身份验证或授权的问题,而是纯粹的数据问题


Facebook的工程师们,如果我对它的工作原理的理解是正确的,那么在这种情况下返回这个错误是一个错误,这个论坛有很多相关困惑的例子。请返回更多适当的错误。

谢谢bronsoja!在读了你的帖子后,我在不到5分钟的时间里做了一个测试。我已经用我的解决方案更新了我的帖子,以防其他人遇到类似的问题。