2

Sharekit for FacebookとTwitterを使用していますが、ユーザーID、プロファイル名などの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であるため、クラッシュするようになりました。

4

2 に答える 2

0

FacebookGraphAPIを使用してユーザー名を取得できます。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_;
}
于 2012-06-28T10:57:05.237 に答える