我正在尝试使用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浏览器对象中,但只有名称。其他属性为零。
有人可以帮助我吗?
答案 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"];