objective-c - FB 请求输出在 iOS 中不起作用

标签 objective-c ios facebook-graph-api

我的 FB 请求输出在 iOS 中不起作用。它向控制台输出两次。第一次它输出正确的信息,然后立即使用 (null) 而不是正确的数据执行相同的操作。

这是我的代码:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions

{

facebook = [[Facebook alloc] initWithAppId:@"fbKEY....." andDelegate:self];

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
if ([defaults objectForKey:@"FBAccessTokenKey"] 
    && [defaults objectForKey:@"FBExpirationDateKey"]) {
    facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
    facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
}

//FB check for valid session


if (![facebook isSessionValid]) {
    NSArray *permissions = [[NSArray alloc] initWithObjects:
                            @"user_likes", 
                            @"read_stream",
                            @"user_location",
                            @"user_checkins",
                            //    @"publish_actions",
                            //    @"user_activities",
                            //    @"friends_birthday",
                            nil];

    [facebook authorize:permissions];

}


[facebook requestWithGraphPath:@"me" andDelegate:self];


// get the posts made by the "platform" page
[facebook requestWithGraphPath:@"platform/posts" andDelegate:self];

// get the logged-in user's friends
[facebook requestWithGraphPath:@"me/friends" andDelegate:self];

[facebook dialog:@"feed" andDelegate:self];

// Override point for customization after application launch.
return YES;

}

- (void)request:(FBRequest *)request didLoad:(id)result { 

NSDictionary *userData = (NSDictionary *)result; // The result is a dictionary

NSString *name = [userData objectForKey:@"name"];
NSString *location = [[userData objectForKey:@"location"] objectForKey:@"name"];
NSString *gender = [userData objectForKey:@"gender"];

NSLog(@"name is %@", name);
NSLog(@"location is %@", location);

NSLog(@"gender is %@", gender);

// NSLog(@"%@",result); 

}

这是我的 NSLog 输出:

2012-04-04 16:42:56.440 Whatto[86350:15803] name is John Doe
2012-04-04 16:42:56.441 appName[86350:15803] location is London
2012-04-04 16:42:56.441 appName[86350:15803] gender is male
2012-04-04 16:42:56.688 appName[86350:15803] name is (null)
2012-04-04 16:42:56.688 appName[86350:15803] location is (null)
2012-04-04 16:42:56.689 appName[86350:15803] gender is (null)
2012-04-04 16:42:58.696 appName[86350:15803] name is (null)
2012-04-04 16:42:58.697 appName[86350:15803] location is (null)
2012-04-04 16:42:58.697 appName[86350:15803] gender is (null)

感谢您的帮助

最佳答案

您正在提出 3 个不同的请求,并将结果视为每个答案都是一个用户...... 第二个结果将是帖子列表,第三个结果将是好友列表。

祝你好运!

关于objective-c - FB 请求输出在 iOS 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10014654/

相关文章:

iphone - Obj-C 的 ZXing 无法编译

ios - 如何在应用程序购买中设置自动续订以满足 Apple 准则?

ios - Facebook 的 API 和 App Store 的用户生成内容政策

php - 使用 Facebook PHP SDK v5 获取页面相册列表

ios - 如何在 Swift 上将 HTML 代码加载到 WebView

ios - 无法解析协议(protocol)中的类型

objective-c - 当应用程序被卸载时,我的 UIPasteboard 上的持久性仍然有效。为什么?

ios - 无法访问地址簿的 Person ViewController

IOS Firebase 按值查询访问

php - Facebook 业务 PHP SDK : Cannot access an object not managed by the business owning this app