我想从ShareKit获取Facebook ID 有谁有任何想法? 有这个参考,但我仍然没有得到它。 Reference
TIA
答案 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"]);
}