2012-02-28 53 views

回答

1

我得到這個使用要求: -

Facebook *facebook = [[Facebook alloc] initWithAppId:SHKCONFIG(facebookAppId) 
            urlSchemeSuffix:SHKCONFIG(facebookLocalAppId) 
             andDelegate:nil]; 
// ... do authorization stuff 

// when authorized... 
[facebook requestWithGraphPath:@"me" andDelegate:self]; 

,並在同一個文件執行委託回調: -

- (void)request:(FBRequest *)request didLoad:(id)result 
{ 
    NSString *fbid = [result objectForKey:@"id"]; 
    NSLog(@"facebook ID %@", fbid); 
} 

這並不工作,但我不知道這是否是推薦的技術,因爲這是我第一次使用sharekit。我覺得奇怪的單身方法[SHKFacebook facebook]是私人的,你必須自己實例化一個對象。

+0

是啊這是我最終做的,它的工作原理。謝謝! – ordinaryman09 2012-03-26 02:30:47

1

ShareKit有一個內置的方法是:

[SHKFacebook getUserInfo]; 

我更喜歡稱它用我自己的成員變量和檢查返回值SHKShareDelegate回調的內部:

SHKItem *item = [[[SHKItem alloc] init] autorelease]; 
item.shareType = SHKShareTypeUserInfo; 
[self.shkFacebook setItem:item]; 
[self.shkFacebook share]; 

這裏是回調到代理方法shareFinishedSending():

if ([sharer isEqual:self.shkFacebook] && 
    sharer.item.shareType == SHKShareTypeUserInfo) { 
    NSDictionary *facebookUserInfo = [[NSUserDefaults standardUserDefaults] objectForKey:@"kSHKFacebookUserInfo"]; 
    NSLog(@"id: %@", [facebookUserInfo objectForKey:@"id"]); 
    NSLog(@"name: %@ %@", [facebookUserInfo objectForKey:@"first_name"], [facebookUserInfo objectForKey:@"last_name"]); 
    NSLog(@"email: %@", [facebookUserInfo objectForKey:@"email"]); 
}