Iphone Facebook Connect打开Facebook应用程序

Iphone Facebook Connect打开Facebook应用程序,iphone,objective-c,cocoa-touch,facebook,Iphone,Objective C,Cocoa Touch,Facebook,我正在尝试在我的iphone应用程序上实现facebook连接 在第一次确认应用程序后,请留在facebook应用程序中,不要返回到我的应用程序 我用一个按钮从视图控制器调用对话框方法,但我想发布 当用户登录时,会显示一条关于应用程序的消息“我该怎么做?” - (void)viewDidLoad{ [super viewDidLoad]; facebook = [[Facebook alloc]initWithAppId:@"" andDelegate:self]; N

我正在尝试在我的iphone应用程序上实现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

您应该

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


要禁用此行为,请修改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];
}

现在我通过[facebook对话框:@“feed”和delegate:self]发帖;我希望它以编程方式发生,并带有关于app@bentford哥们,如果你正确地阅读了这个问题,你会意识到他的问题不是权限问题,而是一旦他的应用程序被切换到Facebook进行身份验证,无论它是否成功,它都不会返回到应用程序。这一切都与handleOpenURL有关,这就是为什么OP将我的答案标记为正确的原因。若你们要否决投票,至少要正确。-1和属性列表无关,链接也不好。
- (void)authorize:(NSArray *)permissions {
  self.permissions = permissions;

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