Facebook Connect打开Facebook应用程序

时间:2011-09-26 11:17:57

标签: iphone objective-c cocoa-touch facebook

我正在尝试在我的iphone App上实现facebook连接。

在第一次确认应用程序停留在Facebook应用程序后,不要返回我的应用程序。

我用一个按钮从视图控制器调用对话框,但我想发布 当用户登录时如何进行应用程序的消息?

- (void)viewDidLoad{
    [super viewDidLoad];
    facebook = [[Facebook alloc]initWithAppId:@"" andDelegate:self];

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

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

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

-(IBAction)dialog:(id)sender{
    [facebook dialog:@"feed" andDelegate:self];
}

TNX!

3 个答案:

答案 0 :(得分:1)

要禁用此行为,请修改Facebook.m第275行并将两个选项都设置为NO。

- (void)authorize:(NSArray *)permissions {
  self.permissions = permissions;

  // with both options NO, authorization always happens in-app
  [self authorizeWithFBAppAuth:NO safariAuth:NO];
}

答案 1 :(得分:0)

在您的app委托中,您需要实现(确保您在应用程序委托可以访问的某个地方保留对facebook类实例的引用):

- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url 
{
    return [facebook handleOpenURL:url];
}

答案 2 :(得分:-1)