使用facebook sharp SDK创建自定义对象时的OAuthException#100

时间:2014-03-19 22:06:46

标签: c# facebook facebook-graph-api facebook-opengraph

基本上,我有一个从地方继承的自定义对象。我正在使用位于here的Facebook Sharp c#SDK创建一个用于创建对象的c#工具。我在进行这些调用时使用了应用访问令牌。

我尝试了各种方法和变体:

  1. 以下是一个示例电话:

    (OAuthException - #100)(#100)参数对象是必需的

    _api.AccessToken = GetExtendedToken().Token;
    var postdata = new Dictionary<string, object>
    {
        //{"fb:app_id", "appId"},
        //{"type", "myapp:myobject"},
        {"url", resort.Url},
        {"title", resort.Name },
        {"image", resort.Image},
        {"video", resort.Video},
        {"description", resort.Description},
        {"place:location:latitude", lat},
        {"place:location:longitude", long}
    };
    var response = _api.Post("/app/objects/myapp:myobject", postdata);
    
  2. 如果我取消注释我得到的类型参数:

    (OAuthException - #2500)无法在路径和查询参数中指定类型

  3. 如果我重新添加类型,并从路径中删除类型,我会得到 true 的回复,但这应该是 id: 23049820398092384

  4. 如果我删除了地方对象,或者我删除了地点和类型,或者是否 我删除地方,但使用类型并更改获取路径,我仍然得到 错误。

1 个答案:

答案 0 :(得分:0)

重构了一下。在这种情况下,我需要将postdata信息分配给对象,如下所示。还需要停止使用facebooksharp,他们的api对请求做了奇怪的事情。

    var obj = new
    {
        app_id = appId,
        type = app_name:object_type",
        url = Url,
        title = Name,
        image = Image,
        video = Video,
        description = Description
    };

    var vars = new NameValueCollection {{"object", JsonConvert.SerializeObject(obj)}, {"format", "json"}, {"access_token", AppToken}};

    var url = "https://graph.facebook.com/app/objects/"+ _appName + object_type;
    return HttpTools.Post(url, vars);