如何在Facebook SDK for iOS中定义“GeoPoint”属性
我试图通过创build一个从预定义的“place”对象inheritance的Open Graph对象来为Open Graph故事地理标记。 但是,我无法弄清楚如何在iOS中定义GeoPoint属性“place:location”! 这里有一个类似的问题的答案: https : //stackoverflow.com/a/19386730/824515我已经尝试没有成功。
现在,我试图通过直接设置“地点”对象来解决这个问题,但这并没有帮助。 我得到这个错误消息:
error = { code = 100; message = "(#100) Object Missing a Required Value: Object at URL '' of type 'place' is invalid because a required property 'place:location' of type 'geo_point' was not provided."; type = OAuthException; };
这是我的testing代码:
A:
FBRequestConnection *connection = [[[FBRequestConnection alloc] init] autorelease]; id<FBOpenGraphObject> object = [FBGraphObject openGraphObjectForPost]; object[@"type"] = @"place"; object[@"title"] = @"Test Title"; object[@"location"] = @{@"latitude": @"48.85831", @"longitude": @"2.29465"}; NSLog(@"object = %@", [object description]); FBRequest *objectRequest = [FBRequest requestForPostOpenGraphObject: object]; [connection addRequest: objectRequest completionHandler: ^(FBRequestConnection *connection, id result, NSError *error) { DLine(); if (error) NSLog(@"Error: %@", error); else NSLog(@"Result: %@", [result description]); }]; [connection start];
我试图用我能想到的所有东西来replace线object[@"location"] = …
,比如:
B:
object[@"place:location"] = @{@"latitude": @"48.85831", @"longitude": @"2.29465"};
C:
object[@"place"] = @{@"location": @{@"latitude": @"48.85831", @"longitude": @"2.29465"} };
d:
object[@"location:latitude"] = @"48.85831"; object[@"location:longitude"] = @"2.29465";
E:
object[@"place:location:latitude"] = @"48.85831"; object[@"place:location:longitude"] = @"2.29465";
所有版本A – E的错误消息都是相同的。
我相信他们需要嵌套字典,所以你需要创build一个“地点”graphics对象,然后将其设置为打开graphics对象的位置。 就像是:
id<FBGraphObject> place = [FBGraphObject graphObject]; id<FBGraphObject> location = [FBGraphObject graphObject]; location[@"latitude"] = @"48.85831"; location[@"longitude"] = @"2.29465"; place[@"location"] = location; place[@"name"] = @"foobar"; object[@"place"] = place;
这对我工作:
NSMutableDictionary<FBOpenGraphObject> *store = [FBGraphObject openGraphObjectForPost]; store.provisionedForPost = YES; store[@"og"] = @{ @"title":@"Test Title", @"type":@"place" }; store[@"place"] = @{ @"location" : @{ @"longitude": @"-58.381667", @"latitude":@"-34.603333"} }; [FBRequestConnection startForPostWithGraphPath:@"me/objects/place" graphObject:@{@"object":store} completionHandler:^(FBRequestConnection *connection, id result, NSError *error) { if (!error) { NSLog(@"result: %@", result); } else { NSLog(@"%@", [NSString stringWithFormat:@"%@", error.description]); } }];
尝试这个:
object[@"data"][@"location"] = @{@"latitude": @"48.85831", @"longitude": @"2.29465"};
Facebook的文档没有明确提到,我们应该把关键data
的附加属性。
- IOS Facebook SDKlogin对话框显示两次(2login对话框)
- 从iOS应用程序直接login到Facebook – Facebook的SDK 3.1
- Facebook SDKlogin在Swift 2 iOS 9中抛出错误
- FBSDKLoginManager logInWithPublishPermissions总是返回isCancelled = YES
- Facebook iOS SDK:无法使用FBRequest的requestForUploadPhoto指定相册:
- 与RestKit(iOS)一起使用force_load链接器标志
- iOS上的Facebook分享对话框:“发布”button始终呈灰色
- UIActivityViewController不会在iOS 7上显示FB和Twitter
- ios,Facebook注销并清除用户令牌