【问题标题】:Facebook Javascript SDK open-graph: error adding custom objects for custom storiesFacebook Javascript SDK open-graph:为自定义故事添加自定义对象时出错
【发布时间】:2013-06-17 17:46:59
【问题描述】:

我创建了一个名为“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 Exception):

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

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

(#100) The parameter object is required

如果我从路径中删除 [namespace]:opinion 也是一样。

我不明白为什么,谷歌搜索后没有关于此的参考。

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

【问题讨论】:

    标签: javascript facebook api sdk facebook-opengraph


    【解决方案1】:

    对象是对象的 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/ 给出的 curl 示例

    【讨论】:

    • 为你的 Facebook 文档感到羞耻。该示例在 Facebook 文档中仍然是官方的。
    • 只是想我会指出,为了让这个工作我必须从第一个参数中删除“/objects”并将JSON对象中的名称“object”替换为我的名称脸书对象。也许这对其他人来说是显而易见的:0)
    • 感激不尽。 facebook 自动生成的所有代码及其文档中的代码都不正确。我今天花了 4 个小时试图解决这个问题
    • 谢谢!我 99% 确定 facebook 的自动生成代码是错误的。 Stackoverflow 来救援。现在它是 100% 确定的,我已经开始运行了。 ;)
    【解决方案2】:

    对于在 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 {
            ...
        }
    }];
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多