使用Facebook Open Graph Story和地图附件(GeoPoint)

时间:2013-10-15 14:21:18

标签: ios facebook facebook-graph-api opengraph

我正在尝试使用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浏览器对象中,但只有名称。其他属性为零。

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:2)

您的自定义属性应添加到名为data的字典中。 在我的Facebook应用程序中,我有一个对象(继承自Object),其中包含一个名为position的属性,它是一个geo_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 }};

答案 1 :(得分:1)

属性不需要以appnamespace为前缀,每个':'表示一个新对象或字典。

尝试类似:

[openGraphObject setObject:@{@"latitude": [currentVenue locationLatitude], 
                             @"longitude": [currentVenue locationLongitude]}
                 forKey:@"location"];