GeoPoint 属性 ("place:location") 未传递给 Open Graph 对象
Posted
技术标签:
【中文标题】GeoPoint 属性 ("place:location") 未传递给 Open Graph 对象【英文标题】:GeoPoint property ("place:location") isn't passing to Open Graph object 【发布时间】:2015-01-12 23:04:55 【问题描述】:我正在 Facebook 上创建自定义故事并使用 Facebook SDK for ios 来分享它。故事由地图上的文本、图像和 GeoPoint 组成。对象和动作的创建和发布一切都很好,但有一件事——我不知道如何将 GeoPoint 属性传递给对象并使其显示在地图上。
我尝试了两种方法:
1) 继承 Place 对象并使用预定义的“place:location”属性,如下所示:
NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
object.provisionedForPost = YES;
// ...
// other properties work perfect
// ...
object[@"place"] = @ @"location" : @ @"longitude": @(-58.381667), @"latitude":@(-34.603333) ;
这种方式只是不传递值,Object Browser "place:location" 字段为空。虽然,如果我对其进行硬编码,地图会出现在帖子中,它看起来正是我所需要的。
2) 创建自定义 GeoPoint 属性“位置”并尝试在那里传递相同的值:
NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
object.provisionedForPost = YES;
// ...
// other properties work perfect
// ...
object[@"data"] = @
@"location": @
@"latitude": latitude, // these are NSNumber objects, but i also
@"longitude": longitude // tried to pass NSString objects
;
通过这种方式传递值并且 "myapp_namespace:location" 属性的值出现在对象浏览器中,但 Story 出于某种原因忽略了它并且地图不显示。
在这两种情况下,我都去了故事附件设置并选择了地图布局,并选择了适当的属性作为突出显示的点。我只是不明白为什么它在第一种情况下不接受价值,而在第二种情况下完全忽略了价值。对于这个问题的任何帮助,我将不胜感激,我认为这可能对社区有用,因为我真的好几个小时都找不到答案。
【问题讨论】:
您是否尝试过这里的代码示例:developers.facebook.com/docs/reference/opengraph/object-type/…?单击 iOS 示例的 iOS SDK 按钮。 @MingLi 是的,我已经看过了,但不确定它是否与创建自定义对象有关,我对@"Sample Location: Latitude", @"place:location:latitude"
这种分配方式感到困惑,尽管我也尝试过.如果我错了,请纠正我。
@MingLi 我发现的最好的教程是here。但我没有找到任何有关位置属性的示例。
【参考方案1】:
您应该使用选项 1 中的代码,但是,您当前将“纬度”和“经度”作为 NSArray 传递。尝试改用字符串:
object[@"place"] = @ @"location" : @ @"longitude": @"-58.381667", @"latitude": @"-34.603333" ;
【讨论】:
不幸的是,它对我也不起作用。实际上,我试图将坐标作为 NSString 和 NSNumber 传递,但“地点:位置”列在对象浏览器中仍然是空白的。另外我想知道为什么它在发布过程中不会引发错误,因为 Place 子类型对象需要此属性。以上是关于GeoPoint 属性 ("place:location") 未传递给 Open Graph 对象的主要内容,如果未能解决你的问题,请参考以下文章
使用带有地图附件的 Facebook Open Graph Story (GeoPoint)