我需要在展台上的图腾上安装我的应用程序。申请流程为:
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应用。
非常感谢!
答案 0 :(得分:0)
如果您正在构建自助服务终端应用,则应将FBLoginView中的loginBehavior设置为FBSessionLoginBehaviorForcingWebView。这将使用应用程序内的webview进行登录,而不是快速应用程序切换到FB应用程序。通常,这是一种较差的用户体验,但对于像您这样的应用程序,您需要绕过SSO,因为您无法强制用户退出Facebook应用程序。
请参阅https://developers.facebook.com/docs/reference/ios/current/class/FBLoginView#loginBehavior