2

FacebookアプリケーションがiPhoneにインストールされているかインストールされていない場合に、ダイアログでFacebookログインの認証を要求するアプリを作成したいと思います.Facebookをログアウトすると、Facebookからログアウトする必要があります。Facebook APIにfacebook-ios-sdkを使用しました。コードは次のとおりです。

- (void)viewDidLoad
{
    _facebook=[[Facebook alloc] initWithAppId:appId andDelegate:self];

    self.navigationController.navigationBarHidden = YES;
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    if ([defaults objectForKey:@"FBAccessTokenKey"] && [defaults objectForKey:@"FBExpirationDateKey"])
    {
        _facebook.accessToken = [defaults objectForKey:@"FBAccessTokenKey"];
        _facebook.expirationDate = [defaults objectForKey:@"FBExpirationDateKey"];
    }

    [super viewDidLoad];
}

//ログインボタンがタップされた

-(IBAction)Login
{
    NSLog(@"login called");

    if (![self connected])
    {
        UIAlertView *alert=[[UIAlertView alloc] initWithTitle:@"Connection" message:@"Internet is not Connected" delegate:self cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [alert show];[alert release];
    }
    else
    {
        if (suggestion==nil)
        {
            suggestion=[[Suggestions alloc] initWithNibName:@"Suggestions" bundle:nil];
        }
        [suggestion setReqFlg:YES];

        if (![_facebook isSessionValid]) 
        {
            NSLog(@"sesssion invalid u have to login...");
            [_facebook authorize:nil];
        }
        else
        {
            NSLog(@"valid and going on next page called graph API ");      

            [_facebook requestWithGraphPath:@"me?fields=id,name" andDelegate:self];
            suggestion.parentView=self;
            [self.navigationController pushViewController:suggestion animated:YES];
        }
    }
}



- (void)fbDidLogin
{
    NSLog(@"facebook did first login..");
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
    [defaults setObject:[_facebook accessToken] forKey:@"FBAccessTokenKey"];
    [defaults setObject:[_facebook expirationDate] forKey:@"FBExpirationDateKey"];  
    [defaults synchronize];
    NSLog(@"called gtraph from login in facebook ");
    [_facebook requestWithGraphPath:@"me?fields=id" andDelegate:self];
    if (suggestion==nil)
    {
        suggestion=[[Suggestions alloc] initWithNibName:@"Suggestions" bundle:nil];
    }
    suggestion.parentView=self;
    [self.navigationController pushViewController:suggestion animated:YES];
}

- (void)fbDidLogout
{
    NSLog(@"logout");
    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

    [defaults removeObjectForKey:@"FBAccessTokenKey"];
    [defaults removeObjectForKey:@"FBExpirationDateKey"];
    [defaults removeObjectForKey:@"FBUserId"];

    [defaults synchronize];
}

facebook.m ファイルを変更する必要がありますか、またはこれを行う別の方法があります。ログイン ボタンをクリックするたびに、facebook がログアウトの場合は facebook ログイン ダイアログが表示され、facebook がログインの場合は次のビューに移動します。facebook アプリを開かないでくださいログイン目的でiPhoneにインストールされます。

あなたのレビューや回答をください。私は本当にそれが必要です. ありがと!

4

1 に答える 1

1

とても簡単に facebook.m ファイルに移動し、FBAppAuth で検索すると、次のような 3_4 の結果が得られました。

 [self authorizeWithFBAppAuth:YES safariAuth:YES];

次のように YES を NO に変更するだけです:-

 [self authorizeWithFBAppAuth:NO safariAuth:NO];

facebook.m のみで変更し、コンパイルして実行すると、loginButton をクリックすると fblogin ダイアログが表示されます:)

編集

アプリのログイン ページにログイン ダイアログが表示されました

フェイスブックのログインダイアログ

于 2012-09-24T13:04:56.687 に答える