如何从ShareKit获取Facebook ID

时间:2012-02-28 09:12:40

标签: ios facebook sharekit

我想从ShareKit获取Facebook ID 有谁有任何想法? 有这个参考,但我仍然没有得到它。 Reference

TIA

2 个答案:

答案 0 :(得分: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]是私有的并且你必须自己实例化一个对象似乎很奇怪。

答案 1 :(得分: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"]);
}