Facebook Javascript SDK open-graph:为自定义故事添加自定义对象时出错

时间:2013-06-17 17:46:59

标签: javascript facebook api sdk facebook-opengraph

我创建了一个名为“Opinion”的自定义对象,用于围绕它构建自定义故事。

我正在尝试使用javascript sdk从我的网站添加一些应用拥有的对象。

facebook给我的示例代码是:

FB.api(
  'me/objects/[namespace]:opinion',
  'post',
  {
    app_id: xxxxxxxx,
    type: "[namespace]:opinion",
    url: "http://samples.ogp.me/331257847005141",
    title: "Sample Opinion",
    image: "https://fbstatic-a.akamaihd.net/images/devsite/attachment_blank.png",
    description: ""
  },
  function(response) {
    // handle the response
  }
);

响应是一个错误(OAuth异常):

2500: Cannot specify type in both the path and query parameter.

如果删除type参数,我会收到另一个错误:

(#100) The parameter object is required

如果我从路径中删除[namespace]:opinion,则相同。

我不明白为什么,谷歌搜索后没有任何参考。

为什么这样?我可以参考的任何资源来解决这个问题吗?

2 个答案:

答案 0 :(得分:19)

该对象是对象的JSON编码版本,为您生成的示例代码不正确。同时从参数列表中删除类型。

等等,

FB.api(
  'me/objects/[namespace]:opinion',
  'post',
  {
    object: {"app_id":xxx,"url":"http:\/\/samples.ogp.me\/331257847005141","title":"\"Sample Opinion\"","image":"https:\/\/s-static.ak.fbcdn.net\/images\/devsite\/attachment_blank.png","description":"\"\""}
  },
  function(response) {
    // handle the response
  }
);

可以在http://philippeharewood.com/facebook/objectify.html看到它的外观示例,它基于https://developers.facebook.com/docs/opengraph/using-object-api/

给出的卷曲示例

答案 1 :(得分:3)

对于在iOS上遇到类似问题的人来说,示例代码似乎再次出错,但以下似乎有效:

NSMutableDictionary<FBOpenGraphObject> *object =
[FBGraphObject openGraphObjectForPostWithType:@"<appnamespace>:<objecttype>"
    title:@"..."
    image:[result objectForKey:@"uri"]
      url:nil
  description:@"..."];

[FBRequestConnection startForPostOpenGraphObject:object completionHandler:^(FBRequestConnection *connection, id result, NSError *error)
{
    // handle the result
    if ( error ) {
        DLog(@"error %@ creating object", error);
    } else {
        ...
    }
}];