1

我正在尝试使用 iOS SDK 创建一些带有地图附件的 Open Graph Story,但遇到了一些问题。

首先,我在创建对象时遇到了问题……我设置了一个继承自“Place”的对象。所以这是第一个问题“如何使用 iOS Facebook SDK 设置 GeoPoint 属性?”......经过多次尝试,我放弃了......所以我创建了一个继承自 'Object' 的对象,并创建了一个自定义属性将“位置”命名为 GeoPoint。但是这个解决方案给我带来了同样的问题“如何使用 iOS Facebook SDK 设置 GeoPoint 属性?”

我所需要的只是创建一个带有显示场地位置的地图的故事。

这是我的对象:

id<FBOpenGraphObject> openGraphObject = (id<FBOpenGraphObject>)[FBGraphObject openGraphObjectForPost];
[openGraphObject setType:@"appnamespace:venue"];
[openGraphObject setTitle:[currentVenue name]];
[openGraphObject setObject:@"en_US" forKey:@"og:locale"];
[openGraphObject setObject:[[currentVenue locationLatitude] stringValue] forKey:@"appnamespace:location:latitude"];
[openGraphObject setObject:[[currentVenue locationLongitude] stringValue] forKey:@"appnamespace:location:longitude"];

但不工作。

它出现在 Facebook 浏览器对象中,但只有名称。其他属性为零。

有人可以帮助我吗?

4

2 回答 2

2

您的自定义属性应添加到名为data. 在我的 Facebook 应用程序中,我有一个对象(从 Object 继承),其属性名为positiongeo_point。

这是我用来创建对象的代码:

NSMutableDictionary<FBOpenGraphObject> *object = [FBGraphObject openGraphObjectForPost];
object.provisionedForPost = YES;
object[ @"title"] = @"Title";   // for og:title
object[ @"type"] = @"my_namespace:my_object";
object[ @"data" ] = @{ @"position": @{ @"latitude": @55, @"longitude": @12 }};
于 2014-02-18T12:10:10.047 回答
1

这些属性不需要以您的应用程序命名空间为前缀,并且每个 ':' 都意味着一个新对象或字典。

尝试类似:

[openGraphObject setObject:@{@"latitude": [currentVenue locationLatitude], 
                             @"longitude": [currentVenue locationLongitude]}
                 forKey:@"location"];
于 2013-10-15T16:52:15.220 回答