0

できるだけ深く掘り下げてみます。Facebook 開発者サイトのガイドに従って、次のコードに行き着きました。

私のAppDelegate.hで:

@interface AppDelegate : UIResponder <UIApplicationDelegate, FBSessionDelegate> {
...    
Facebook *facebook;
}
@property (nonatomic, retain) Facebook *facebook;

AppDelegate 実装では、facebook appid などを指定しました。

- (BOOL)application:(UIApplication *)application openURL:(NSURL *)url
  sourceApplication:(NSString *)sourceApplication annotation:(id)annotation {
    return [facebook handleOpenURL:url]; 
}

- (void)fbDidLogin {
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:[facebook accessToken] forKey:@"FBAccessTokenKey"];
    [defaults setObject:[facebook expirationDate] forKey:@"FBExpirationDateKey"];
    [defaults synchronize];

}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    self.menuViewController = [[MenuViewController alloc] init];
    UIView *menuView = self.menuViewController.view;

    facebook = [[Facebook alloc] initWithAppId:@"172938549507285" andDelegate:self];

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"FBAccessTokenKey"] 
        && [defaults objectForKey:@"FBExpirationDateKey"]) {
        facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
        facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    }

    if (![facebook isSessionValid]) {
        [facebook authorize:nil];
    }
    ... 
}

アプリが閉じられなかった場合に備えて、同じメソッドを次の場所に実装しました。

- (void)applicationWillEnterForeground:(UIApplication *)application
{   

    facebook = [[Facebook alloc] initWithAppId:@"172938549507285" andDelegate:self];

    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"FBAccessTokenKey"] 
        && [defaults objectForKey:@"FBExpirationDateKey"]) {
        facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
        facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    }

    if (![facebook isSessionValid]) {
        [facebook authorize:nil];
            NSLog(@"Facebook session is not valid");
    }
    NSLog(@"Application Entering Foreground.. setting segue to login flag");
    [defaults setObject:@"yes" forKey:@"shouldgotologin"];
    [defaults synchronize];

}

ただし、これをすべて実装した後でも、Facebookのログインウィンドウを開くことはありません...決して表示されません...以前に一度表示されました...しかし、コンソールログには何も表示されません....本当にわかりません理由を知っています... 私は非常に迷っています。誰かが私を助けることができますか?私を Facebook 開発者サイトに誘導しないでください...それは私がちょうど来たところです ありがとう!.

4

2 に答える 2

0

これはばかげた質問のように聞こえるかもしれませんが、あなたは一度だけ見たと言っています...今ログインしたばかりではないのですか?

アプリをアンインストールして再インストールすると、再び表示されますか?

于 2012-08-08T00:07:05.793 に答える