【问题标题】:Creating Facebook Event in C# Returns #100 Invalid Parameter在 C# 中创建 Facebook 事件返回 #100 无效参数
【发布时间】:2011-06-18 05:34:59
【问题描述】:

我正在尝试制作一个小应用程序,让我可以在 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 代码副本,我可以查看并查看我的代码应该在哪里进行调整,我将不胜感激。

我在下面包含了 ser.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);

【问题讨论】:

    标签: c# json facebook facebook-graph-api webclient


    【解决方案1】:

    FB 文档中的图形 api 示例中的所有发布示例都显示使用 curl -F,这表示将值作为普通表单数据发布。就像您在第一个示例中所做的那样,只需键值对即可。

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

    【讨论】:

    • 谢谢布朗索亚!阅读您的帖子后,我在不到 5 分钟的时间内完成了一个测试活动。我已经用我的解决方案更新了我的帖子,以防其他人遇到类似的问题。
    【解决方案2】:

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-30
      • 2013-10-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-06
      • 2011-09-14
      • 2011-05-20
      相关资源
      最近更新 更多