2012-06-28 205 views
2

我正在使用Facebook和Twitter的Sharekit,我想获得Facebook帐户的详细信息,如用户名,个人资料名称等。请给予您的建议和help.I已经得到的细节之前,但现在我无法检索它。获取Facebook帐户详细信息

请找到下面的代码,

if ([[NSUserDefaults standardUserDefaults] objectForKey:@"kSHKFacebookUserInfo"]){ 
      NSDictionary *facebookUserInfo = [[NSUserDefaults standardUserDefaults] objectForKey:@"kSHKFacebookUserInfo"]; 
      fbUseremail = [facebookUserInfo objectForKey:@"email"]; 
      NSLog(@"FBid-- %@",fbUseremail); 
     } 
     if ([[NSUserDefaults standardUserDefaults] objectForKey:@"kSHKFacebookUserInfo"]){ 
      NSDictionary *facebookUserInfo = [[NSUserDefaults standardUserDefaults] objectForKey:@"kSHKFacebookUserInfo"]; 
      fbUserName = [facebookUserInfo objectForKey:@"name"]; 
      NSLog(@"FBName-- %@",fbUserName); 
     } 

现在它被撞坏的facebookUserInfo为NULL。

+0

请参考以下链接https://github.com/ShareKit/ShareKit/issues/184 – Ramz

+0

@RamkumarThiyyakat我想,解决方案,但没有改变:( – ishhhh

回答

0

您可以使用Facebook Graph API获取用户名。将FBConnect包的FBSession.m类添加到下面的方法。

#import "JSON.h" 

...........

static NSString *const kGraphAPIURL = @"https://graph.facebook.com/"; 
//static NSString *const kFBGraphAPIUserName = @"name"; 

...........

// Get user name via Facebook GraphAPI. 

- (NSString *)getUserNameByUID:(FBUID)aUID { 

NSString *userName_ = nil; 

NSURL *serviceUrl = [NSURL URLWithString:[NSString stringWithFormat:@"%@%qi", kGraphAPIURL, aUID]]; 

[UIApplication sharedApplication].networkActivityIndicatorVisible = YES; 

NSError *error = nil; 
NSString *jsonString = [NSString stringWithContentsOfURL:serviceUrl encoding:NSUTF8StringEncoding error:&error]; 

if (error != nil) { 
    NSLog(@"######### error: %@", error); 
} 

if (jsonString) { 

    // Parse the JSON into an Object and 
    // serialize its object to NSDictionary 
    NSDictionary *resultDic = [jsonString JSONValue]; // U have resultDic with information 

    //if (resultDic) { 
     //userName_ = [resultDic valueForKey:kFBGraphAPIUserName]; 
    //} 
} 

[UIApplication sharedApplication].networkActivityIndicatorVisible = NO; 

return userName_; 
} 
1

我刚刚与试了一下演示应用程序,它运行良好。要找到,发生了什么事情,你可以在SHKFacebook.m - (void)request:(FBRequest *)fbRequest didLoad:(id)result,第411行中断。现在你可以看到,你从Facebook得到什么。

要获得用户信息,您必须首先从Facebook获取它:

SHKItem *item = [[SHKItem alloc] init]; 
item.shareType = SHKShareTypeUserInfo; 
[SHKFacebook shareItem:item]; 
相关问题