2012-02-28 51 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"]); 
}