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

Posted

技术标签:

【中文标题】iOS Facebook SDK 分享照片和从 Facebook 应用程序注销后【英文标题】:iOS Facebook SDK share photo and after logout from Facebook app 【发布时间】:2014-09-19 10:15:11 【问题描述】:

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

1) 用户拍照

2) 用户点击 FBLoginView 打开 Facebook 应用程序。用户进行登录,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 将其文本更改为“使用 Facebook 登录”,但如果我再次点击 FBLoginVIew,Facebook 应用程序已经登录,我无法使用其他个人资料登录。

我需要知道是否可以通过编程方式注销 Facebook 应用。

非常感谢!

【问题讨论】:

让用户使用一台设备并不断使用他们的帐户登录很可能是个问题。如果许多用户在很短的时间内在一台设备上登录,facebook 就会检测到它。最好让用户使用自己的设备(例如带有 qr 标签)。 facebook-ios-sdk logout question 的可能重复项 【参考方案1】:

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

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

【讨论】:

以上是关于iOS Facebook SDK 分享照片和从 Facebook 应用程序注销后的主要内容,如果未能解决你的问题,请参考以下文章

在 iPhone 应用程序中,如何将照片发布到 Facebook 粉丝页面。在它之前如何喜欢它?使用 facebook-ios-sdk

使用 Facebook iOS SDK 分享带字幕的视频

如何在 Facebook iOS SDK 中发布或分享?

Facebook SDK - iOS - 分享 URL 失败(错误 102)

Facebook sdk io 从相册中获取照片

以用户身份将照片发布到 Facebook 粉丝页面。 iOS Facebook SDK 3.1