OAuthException 3502即使将正确的对象类型发布到Facebook图表也是如此

时间:2012-02-29 05:16:01

标签: facebook exception facebook-graph-api oauth opengraph

我已经阅读过几篇帖子,其中人们在其对象实例中指定了错误的og:type或og:url,并且会产生此错误。这是一种不同的情况。

我有一个完美运行的应用程序。它定义了动作'爱',它对象'物品'起作用,它产生例如'乔喜欢音乐'就好了。它的app命名空间是'promo'。

出于测试目的,我创建了第二个应用程序,几乎相同,具有相同的操作和对象定义。由于应用程序无法使用相同的命名空间,因此我已将此应用程序的命名空间分配给“promoTest”。我已经使我的代码可配置,以便第二个应用程序生成的对象将显示为正确的og:type = promoTest:item。

总结

  • app 1生成og:type'proto:item'
  • 的对象
  • app 2生成og:对象'promoTest:item'的对象。
  • 两种类型前缀都与其应用程序各自的名称空间相匹配。
  • 从这两个应用程序生成的对象在对象调试器中工作正常。 0错误。

问题是,app 1工作正常,而app 2产生以下错误:

OAuthException: (#3502) Object at URL <url> has og:type of 'promoTest:item'. The property 'item' requires an object of og:type 'promo:item'.

App 2正在生成正确的类型。但Facebook抱怨它想要与App 1相关联的类型。这几乎就像app 1的项目是取代app 2的项目一样。当然有数百个具有名为“item”的对象的应用程序,这就是我们需要命名空间的原因。

那么为什么facebook要求app 2获取app 1的命名空间?

1 个答案:

答案 0 :(得分:3)

这里可能有两件事:

  • fb:app_id标记必须与您尝试使用的应用
  • 相匹配
  • 两个对象的网址必须不同 - 例如,您应该有app1.example.com/some/url和app2.example.com/some/url - 否则Facebook会看到相同的网址并会看到它与在首次发布操作时使用的任何应用程序相关。