iOS Facebook SDK分享照片和从Facebook应用程序注销后

时间:2014-09-19 10:15:12

标签: ios objective-c facebook facebook-ios-sdk

我需要在展台上的图腾上安装我的应用程序。申请流程为:

1)用户拍照

2)用户点击打开Facebook应用的FBLoginView。用户进行登录,Facebook应用程序自动返回我的应用程序。

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)用户点击UIButton发布照片,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将其文字更改为&#34;使用Facebook登录&#34;但是,如果我再次点击FBLoginVIew,Facebook应用已经被记录,我无法使用其他个人资料登录。

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

非常感谢!

1 个答案:

答案 0 :(得分:0)

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

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