在"旧"FB iOS SDK中,我可以通过以下方式接收用户信息:
NSMutableDictionary *params = [NSMutableDictionary dictionaryWithObjectsAndKeys:
@"SELECT uid, name, email, pic FROM user WHERE uid=me()", @"query",
nil];
JBFacebookManager *fbManager = [JBFacebookManager getInstance];
fbManager.requestDelegate = self;
[fbManager.facebook requestWithMethodName:@"fql.query"
andParams:params
andHttpMethod:@"POST"
andDelegate:self];
Run Code Online (Sandbox Code Playgroud)
如何使用新的FB iOS SDK 3.0执行此操作?我是否需要使用FBRequest或者FBOpenGraphAction或FBGraphObject那些或完全不同的组合?
znq*_*znq 68
if (FBSession.activeSession.isOpen) {
[[FBRequest requestForMe] startWithCompletionHandler:^(FBRequestConnection *connection, NSDictionary<FBGraphUser> *user, NSError *error) {
if (!error) {
self.nameLabel.text = user.name;
self.emailLabel.text = [user objectForKey:@"email"];
}
}];
}
Run Code Online (Sandbox Code Playgroud)
因为FBGraphUser没有电子邮件@property,我们无法访问类似名称(点 - 语法)的信息,但是NSDictionary仍然有电子邮件kv-pair,我们可以像访问普通的NSDictionary那样访问它.
不要忘记要求电子邮件许可:
NSArray *permissions = [[NSArray alloc] initWithObjects:@"email", nil];
[FBSession sessionOpenWithPermissions:permissions completionHandler:
^(FBSession *session, FBSessionState state, NSError *error) {
[self facebookSessionStateChanged:session state:state error:error];
}];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20863 次 |
| 最近记录: |