2014-09-19 79 views
1

我需要将我的应用安装在展台上的图腾上。应用程序流程是:iOS Facebook SDK共享照片并从Facebook应用登出后

1)用户拍摄照片上的FBLoginView打开Facebook的应用程序

2)用户抽头。用户使登录和Facebook应用程序自动返回到我的应用程序。在UIButton

FBLoginView *loginView = [[FBLoginView alloc] initWithReadPermissions: 
          @[@"public_profile", @"email", @"user_friends"]]; 

// Align the button in the center horizontally 
loginView.delegate = self; 

loginView.frame = CGRectOffset(loginView.frame, (self.view.center.x - (loginView.frame.size.width/2)), 5); 
[self.view addSubview:loginView]; 

3)用户抽头后的照片和Facebook的应用程序被再次打开。共享的代码如下

NSArray* images = @[ 
        @{@"url": [UIImage imageNamed:@"zoom_out_(25x25)"], @"user_generated" : @"true" } 
        ]; 

id<FBOpenGraphAction> action = (id<FBOpenGraphAction>)[FBGraphObject graphObject]; 
[action setObject:@"https://example.com/cooking-app/meal/Lamb-Vindaloo.html" forKey:@"meal"]; 
[action setObject:images forKey:@"image"]; 

[FBDialogs presentShareDialogWithOpenGraphAction:action 
             actionType:@"fbsdktoolkit:cook" 
          previewPropertyName:@"meal" 
             handler:^(FBAppCall *call, NSDictionary *results, NSError *error) { 
              if(error) { 
               [[FBSession activeSession] closeAndClearTokenInformation]; 
              } else { 
               [[FBSession activeSession] closeAndClearTokenInformation]; 
              } 
             }]; 

4)用户消失和另一个用户(与另一个Facebook的个人主页)重新从点流1.

的问题是,当共享动作完成我用[[FBSession activeSession] closeAndClearTokenInformation];删除当前会话。 FBLoginVIew将其文本更改为“使用Facebook登录”,但如果再次点击FBLoginVIew,Facebook应用程序已经记录,我无法使用其他配置文件登录。

我需要知道是否有方法以编程方式注销Facebook应用程序。

非常感谢!

+0

让用户使用一台设备,并不断与他们的帐户密码,将最有可能成为一个问题。如果许多用户在很短的时间内在一台设备上登录,Facebook会检测到它。最好让用户使用他们自己的设备(例如使用qr标签)。 – luschn 2014-09-19 10:26:24

+0

[facebook-ios-sdk注销问题]的可能重复(http://stackoverflow.com/questions/6226950/facebook-ios-sdk-logout-question) – 2014-09-22 14:10:16

回答

0

如果您正在构建自助服务终端应用,则应该将FBLoginView中的loginBehavior设置为FBSessionLoginBehaviorForcingWebView。这将使用应用内web视图进行登录,而不是通过快速应用切换到FB应用。通常,这是一种较差的用户体验,但对于像您这样的应用,您需要绕过SSO,因为您无法强制用户退出Facebook应用。

https://developers.facebook.com/docs/reference/ios/current/class/FBLoginView#loginBehavior