在Facebook Open Graph中创建GeoPoint复杂数据类型

时间:2012-05-12 04:40:13

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

我正在尝试为现有的Object创建GeoPoint类型。 Facebook在这里的文档并不完全是出色的 - 但我所做的是创建一个新属性并将其命名为location。我制作了GeoPoint类型并且需要它。

然后我在模板中提供以下内容:

  <meta property="my-app:location:latitude" content="<%= @location.lat %>" />
  <meta property="my-app:location:longitude" content="<%= @location.lng %>" />

然而调试器抱怨道:

The parser's result for this metadata did not match the input metadata. Likely, this was caused by the data being ordered in an unexpected way, multiple values being given for a property only expecting a single value, or property values for a given property being mismatched. Here are the input property =>content pairs that were not seen in the parsed result: 'my-app:location:latitude => 40.134537901957735, my-app:location:longitude => -75.00853989318185'

我应该如何定义这个GeoPoint?我应该如何在我的URL中嵌入lat / lng?这不想以我试过的任何方式验证它。

2 个答案:

答案 0 :(得分:0)

我刚刚运行了我通过另一个应用程序(Endomondo)发布的对象的URL,但其中包含GeoPoint数据到调试工具中,这就是他们如何做到的。请记住,在这种情况下它是一个数组(它是一个循环活动的路径),所以实际上有60个,但我认为只有一个例子:

Meta Tag    <meta property="endoapp:route:latitude" content="3x.xxxx" />
Meta Tag    <meta property="endoapp:route:longitude" content="-12x.xxxx" />
Meta Tag    <meta property="endoapp:route:altitude" content="0.01" />

看看你的例子,我想也许省略的高度可能是问题? Endomondo的示例使用'route'字段中的一个点数组,每个用于开始和结束,这些是endoapp:start:latitude,endoapp:start:longitude等

答案 1 :(得分:0)

您应该省略您指定的内容 property =“og:type”,即content =“my-app” 如果是这样,那么你应该使用property =“location:latitude”等(省略“my-app”前缀)