GeoPoint 属性 ("place:location") 未传递到打开图形对象



我正在Facebook上创建自定义故事,并使用iOS版Facebook SDK进行分享。故事由文本、图像和地图上的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)} };

这样它就不会传递值,对象浏览器中的"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只是出于某种原因忽略了它,地图也不会显示。

在这两种情况下,我都选择了故事附件设置和地图布局,并选择了适当的属性作为高亮显示点。我不明白为什么它在第一种情况下不接受值,而在第二种情况下完全忽略值。我很感激这个问题的任何帮助,我认为这可能对社区有用,因为我真的好几个小时都找不到答案了。

您应该使用选项1中的代码,但是,您当前正在将"纬度"one_answers"经度"作为NSArray传递。请尝试使用字符串:

object[@"place"] = @{ @"location" : @{ @"longitude": @"-58.381667", @"latitude": @"-34.603333"} };

最新更新