【发布时间】:2015-09-26 07:28:31
【问题描述】:
我已经为我的应用程序使用了自定义 UI FBLogin 按钮。在LoginHomeViewController 我有FBLogin 按钮。
这是我在ViewDidLoad中使用的代码
FBSDKLoginButton *loginButton = [[FBSDKLoginButton alloc] init];
loginButton.readPermissions = @[@"public_profile", @"email", @"user_friends"];
if ([FBSDKAccessToken currentAccessToken])
{
[[[FBSDKGraphRequest alloc] initWithGraphPath:@"me" parameters:nil] startWithCompletionHandler: ^(FBSDKGraphRequestConnection *connection, id result, NSError *error) {
if (!error)
{
NSLog(@"fetched user:%@", result);
}
}];
}
1) 问题是当我第一次在 safari 或 FB 上没有控制台输出时,我正在登录我想要此视图控制器中的用户详细信息,即 LoginHomeViewController。
2) 目前在 safari 或 FB 中完成登录后,当我返回上一个视图并进入此控制器时,即LoginHomeViewController,然后在
NSLog(@"fetched user:%@", result);
我在自定义登录按钮点击中尝试了上面的代码,即
- (IBAction)facebookClcik:(id)sender {
}
但我面临同样的问题。
以下是我的 AppDelegate 方法
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions : (NSDictionary *)launchOptions
{
[FBSDKLoginButton class];
return [[FBSDKApplicationDelegate sharedInstance] application : application didFinishLaunchingWithOptions : launchOptions];
}
- (BOOL)application : (UIApplication *)application openURL : (NSURL *)url sourceApplication : (NSString *)sourceApplication annotation : (id)annotation
{
return [[FBSDKApplicationDelegate sharedInstance] application : application openURL : url sourceApplication : sourceApplication annotation : annotation];
}
- (void)applicationDidBecomeActive : (UIApplication *)application
{
[FBSDKAppEvents activateApp];
}
【问题讨论】:
-
为什么
appDelegate的application: didFinishLaunchingWithOptions:方法里面有[FBSDKLoginButton class]方法? -
@DharmeshDhorajiya 您的解决方案在用户已经登录时工作(在我上面的代码中也工作)。当我在同一个视图控制器中单击按钮 facebookClcik 时,我需要详细信息,即当我们从 safari 回来时 LoginHomeViewControlle。
-
@AshishKakkad 没问题,我的问题是当我在 LoginHomeViewController 中单击 facebookClcik 按钮时需要详细信息。目前,当我转到上一个视图并进入 LoginHomeViewController 时,我正在获取详细信息。单击按钮后,我需要同一控制器中的详细信息。
-
@ShrikantKankatti 这就是我所说的。保存您检索的 facebook 数据
标签: ios objective-c facebook login facebook-login