首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PFFacebookUtils logInInBackgroundWithReadPermissions:阻止:打开Facebook应用程序,而不是使用系统帐户

PFFacebookUtils logInInBackgroundWithReadPermissions:阻止:打开Facebook应用程序,而不是使用系统帐户
EN

Stack Overflow用户
提问于 2015-08-16 17:36:43
回答 3查看 854关注 0票数 3

我已经升级到ParseFacebookUtilsV4,并且我已经这样更新了我的登录代码:

代码语言:javascript
复制
[PFFacebookUtils logInInBackgroundWithReadPermissions:FACEBOOK_READ_PERMISSIONS block:^(PFUser *user, NSError *error) {
  ...
}];

然而,现在我的应用程序切换到Facebook应用程序片刻,然后又回来了。它使用原生的Facebook应用程序登录,而在设置中仍然有一个有效的iOS Facebook帐户。如何让PFFacebookUtils v4在系统Facebook账号可用时使用,并仅在系统账号不可用时才回退到Facebook app?

EN

回答 3

Stack Overflow用户

发布于 2015-08-25 12:23:15

从ParseFacebookUtilsV4的头文件

PFFacebookUtils.h

..。

/*!@abstract FBSDKLoginManager提供了配置登录行为、默认受众和管理Facebook访问令牌的方法。

@返回PFFacebookUtils使用的FBSDKLoginManager实例。*/

  • (FBSDKLoginManager *)facebookLoginManager;

因此,假设PFFacebookutils使用了"FBSDKLoginManager“声明,让我们看看这是否有效。实际上,让我们将默认值设置为“系统帐户”,...代码如下:

代码语言:javascript
复制
[[PFFacebookUtils facebookLoginManager] setLoginBehavior:FBSDKLoginBehaviorSystemAccount];

[PFFacebookUtils logInInBackgroundWithReadPermissions:FACEBOOK_READ_PERMISSIONS block:^(PFUser *user, NSError *error) {
}]; 

是的,这段代码可以编译,这段代码可以工作,只要确保你在调用登录工具之前声明了登录行为,当你初始化代码库,解析,解析Facebook Utilities等时,最好是在你的AppDelegate中。

事实上,为了确保这对您有效,我刚刚下载了最新版本的PARSE iOS SDK,它具有相同的功能。这是你的选择,这是来自iOS的Facebook SDK,它为PFFacebookUtils提供了:

代码语言:javascript
复制
@typedef FBSDKLoginBehavior enum

@ FBSDKLoginManager已传递给\c Facebook,以指示应如何尝试Facebook登录。

@discussion Login授权应用程序使用用户的Facebook帐户代表用户执行操作。通常,Facebook登录将依赖于应用程序外部维护的帐户,该帐户由原生Facebook应用程序、浏览器或设备本身维护。这避免了用户直接输入用户名和密码的需要,并为用户授权应用程序与Facebook交互提供了最安全和最低摩擦的方式。

\c FBSDKLoginBehavior枚举指定应尝试哪种登录方法。大多数应用程序将使用默认设置,即尝试通过Facebook应用程序登录,并在需要时回退到浏览器。

如果无法使用指定的行为完成登录,则将调用完成处理程序,并在\c FBSDKErrorDomain中显示错误,代码为\c FBSDKLoginUnknownErrorCode。*/

代码语言:javascript
复制
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,
};
票数 6
EN

Stack Overflow用户

发布于 2015-08-25 04:30:58

根据SDK,打开Facebook应用程序是使用您的应用程序进行身份验证的首选方案。这种行为是由Facebook和他们的SDK定义的,而不是真正的解析问题。

除非你想添加一大堆自定义代码来直接与iOS系统帐户交互,否则你将不得不忍受应用程序打开并返回到你的应用程序。每个人都是这么做的.(我知道,答案有点差劲)

如果你想自己试一试,那就从

代码语言:javascript
复制
ACAccountType *facebookAccountType = [[[ACAccountStore alloc] init] accountTypeWithAccountTypeIdentifier:ACAccountTypeIdentifierFacebook];
票数 0
EN

Stack Overflow用户

发布于 2015-08-22 20:17:04

来自Github的Fork Parse库

进去吧,想改什么就改什么……

票数 -3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32033660

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档