Facebook登录:坚持应用程序启动

时间:2015-07-27 08:03:22

标签: ios objective-c facebook facebook-graph-api

我使用以下方法登录用户,工作正常。但是,每次应用重新启动时,我都需要再次运行此方法以重新获得访问权限。

Facebook文档似乎非常有限,我能找到的所有建议(包括Stack Overflow)都与旧的 Facebook SDK 有关。

根据我的理解,当用户首次登录时,应该缓存 FBSDKAccessToken 。但是,当我在后续启动时检查[FBSDKAccessToken currentAccessToken]时,不会返回任何内容。

任何建议都非常欢迎。

FBSDKLoginManager *login = [[FBSDKLoginManager alloc] init];
[login logInWithPublishPermissions:@[@"publish_actions"] handler:^(FBSDKLoginManagerLoginResult *result, NSError *error) {
     if (error) {
         // Process error
     } else if (result.isCancelled) {
         // Handle cancellations
     } else {
         if ([result.grantedPermissions containsObject:@"publish_actions"]) {
              // success           
         }
     }
 }];

2 个答案:

答案 0 :(得分:0)

大笑,搜了几个小时,然后过了5分钟来到这里。问题是我需要在AppDelegate中添加以下内容

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    return [[FBSDKApplicationDelegate sharedInstance] application:application
                                    didFinishLaunchingWithOptions:launchOptions];
}

答案 1 :(得分:0)

您还想在以下方法中添加它:

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {

    BOOL facebookCheck = [[FBSDKApplicationDelegate sharedInstance] application:application
                                                           openURL:url
                                                 sourceApplication:sourceApplication
                                                        annotation:annotation];

    if (!facebookCheck){
        ...
    }

    return true;

}

你现在可能不需要它,但它并没有受到伤害。 :)