GeoPoint属性("地点:位置")未传递给Open Graph对象

时间:2015-01-12 23:04:55

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

我正在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 “地点:位置”字段为空。虽然,如果我硬编码,地图会显示在帖子中,它看起来就像我需要的那样。

2) 创建自定义GeoPoint属性“location”并尝试在其中传递相同的值:

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 个答案:

答案 0 :(得分:0)

您应该使用选项1中的代码,但是,您目前正在传入&#34;纬度&#34;和经度&#34;作为NSArray。请尝试使用字符串:

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