PFFVideosUtils logInInBackgroundWithReadPermissions:block:打开Facebook应用程序,而不是使用系统帐户
我已经升级到ParseFacebookUtilsV4,我更新了我的login代码:
[PFFacebookUtils logInInBackgroundWithReadPermissions:FACEBOOK_READ_PERMISSIONS block:^(PFUser *user, NSError *error) { ... }];
不过,现在我的应用程序切换到Facebook应用程序一会儿又回来了。 它使用本机Facebook应用程序login,而在设置中仍然有一个有效的iOS Facebook帐户。 如何使PFFacebookUtils
v4在系统帐户可用时使用系统Facebook帐户,并在系统帐户不可用时才回退到Facebook应用程序?
从ParseFacebookUtilsV4的头文件
PFFacebookUtils.h
…
/ *! @abstract
FBSDKLoginManager
提供了configurationlogin行为,默认受众和pipe理Facebook访问令牌的方法。@returns
FBSDKLoginManager
使用的PFFacebookUtils
。 * /+ (FBSDKLoginManager *)facebookLoginManager;
因此,据说PFFVideosutils使用了“FBSDKLoginManager”的声明,让我们来看看是否可行。 实际上,我们将默认设置为“系统帐户”,这里是代码:
[[PFFacebookUtils facebookLoginManager] setLoginBehavior:FBSDKLoginBehaviorSystemAccount]; [PFFacebookUtils logInInBackgroundWithReadPermissions:FACEBOOK_READ_PERMISSIONS block:^(PFUser *user, NSError *error) { }];
是的,这个代码编译,这个代码工作,只要确保你声明login行为,然后再调用login的东西,最好在你的AppDelegate,当你初始化你的代码库,parsing,parsingFacebook实用程序等。
事实上,为了确保这一点,我只是下载了最新版本的PARSE iOS SDK,它具有相同的function。 这里是你的select,这是来自iOS的Facebook SDK,它提供PFFVideosUtils:
@typedef FBSDKLoginBehavior enum
@abstract传递给\ FBSDKLoginManager以指示如何尝试Facebooklogin。
@discussion Facebooklogin授权应用程序代表用户使用用户的Facebook帐户进行操作。 通常,Facebooklogin将依赖于在应用程序之外维护的帐户,本地Facebook应用程序,浏览器或者设备本身。 这样就避免了用户直接input用户名和密码的需求,为用户授权应用程序与Facebook进行交互提供了最安全,最低摩擦的方式。
\ c FBSDKLoginBehavior枚举指定应该尝试login哪个方法。 大多数应用程序将使用默认设置,它会尝试通过Facebook应用程序进行login,并在需要时返回浏览器。
如果使用指定的行为无法完成login,则会在\ c FBSDKErrorDomain和\ c FBSDKLoginUnknownErrorCode的代码中调用完成处理程序时出现错误。 * /
typedef NS_ENUM(NSUInteger, FBSDKLoginBehavior) { /*! @abstract Attempts log in through the native Facebook app. If the Facebook app is not installed on the device, falls back to \c FBSDKLoginBehaviorBrowser. This is the default behavior. */ FBSDKLoginBehaviorNative = 0, /*! @abstract Attempts log in through the Safari browser */ FBSDKLoginBehaviorBrowser, /*! @abstract Attempts log in through the Facebook account currently signed in through Settings. If no Facebook account is signed in, falls back to \c FBSDKLoginBehaviorNative. */ FBSDKLoginBehaviorSystemAccount, /*! @abstract Attemps log in through a modal \c UIWebView pop up @note This behavior is only available to certain types of apps. Please check the Facebook Platform Policy to verify your app meets the restrictions. */ FBSDKLoginBehaviorWeb, };
根据SDK,打开Facebook应用程序是与您的应用程序进行身份validation的首选scheme。 这个行为是由Facebook和他们的SDK定义的,而不是真正的parsing问题。
除非你想添加一大堆自定义代码来直接与iOS系统帐户进行交互,否则你将不得不忍受应用程序打开并返回到你的应用程序。 这就是每个人都这样做 …(我知道,有点蹩脚的答案)
如果你想尝试自己,开始寻找
ACAccountType *facebookAccountType = [[[ACAccountStore alloc] init] accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
Github的叉子parsing库
进去吧,改变你想要的
- 使用Facebook Graph API提取用户信息时出现身份validation错误
- 如何使用cocoapods安装Facebook的SDK的iOS?
- FBFriendPickerDelegate与Facebook v4消失
- Facebook iOS SDK 3.x提要对话框消失了吗?
- Facebook的本地login是不是开放的Facebook应用程序,即使它安装在设备?
- Facebook iOS SDK没有调用完成处理程序
- Interface Builder文件中的未知类FBSDKLoginButton
- 如何通过iPhone中的graphicsAPI在Facebook上“喜欢”和“评论”?
- 在Facebook上分享截图