首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Facebook登录总是以取消的形式返回。(iOS Swift)

Facebook登录总是以取消的形式返回。(iOS Swift)
EN

Stack Overflow用户
提问于 2015-03-28 19:12:04
回答 13查看 15.5K关注 0票数 18

我目前正在尝试使用4.0版本的SDK实现Facebook登录,3.+版本也会出现这种情况。当我调用logInWithReadPermissions (4.0版本)或openActiveSessionWithReadPermissions (3.+版本)时。在用户可以选择之前,立即使用isCancelled (4.0版本)和3.+ (3.+版本)调用闭包/块(取消或确定)。我想这可能是在我的plist设置的URL方案的一个问题,但我已经检查了一遍又一遍,一切似乎都是正确的。只是想知道是否有人对解决这个问题有任何想法。我的捆绑ID是正确的,单信号是打开的,本机应用程序是启用的,在Facebook开发控制台。参见下面的一些示例代码和配置(4.0版本)。

登录呼叫:

AppDelegate:

薄片:

EN

回答 13

Stack Overflow用户

回答已采纳

发布于 2015-03-30 00:12:49

我遇到了一些问题,但我找到了解决办法。您可以将登录管理器的登录行为设置为使用电话上的Facebook详细信息。默认的行为是FBSDKLoginBehaviorSystemNative,它首先尝试使用Facebook应用程序,然后如果它不存在,则使用web模式。

您可以将登录行为设置为FBSDKLoginBehaviorSystemAccount.,而不是以这种方式传递似乎不起作用的urls。

长话短说,试着:

代码语言:javascript
运行
复制
let fbLoginManager = FBSDKLoginManager();
fbLoginManager.loginBehavior = FBSDKLoginBehaviorSystemAccount;
// call login method of choice here
票数 7
EN

Stack Overflow用户

发布于 2017-01-10 22:55:18

使用Facebook版本4,我只需将其添加到iOS 10 & Swift 3上的应用程序委托中,就可以使身份验证工作。在此之前,我也只取消了登录。

代码语言:javascript
运行
复制
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool {
    return SDKApplicationDelegate.shared.application(app, open: url, options: options)
}
票数 14
EN

Stack Overflow用户

发布于 2017-01-17 13:18:08

我有同样的问题,登录方法总是返回加腌制的,然后在info.plist中添加以下内容

代码语言:javascript
运行
复制
<key>NSAppTransportSecurity</key>
<dict>
    <key>NSExceptionDomains</key>
    <dict>
        <key>akamaihd.net</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>facebook.com</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
        <key>fbcdn.net</key>
        <dict>
            <key>NSIncludesSubdomains</key>
            <true/>
            <key>NSThirdPartyExceptionRequiresForwardSecrecy</key>
            <false/>
        </dict>
    </dict>
</dict>
<key>LSApplicationQueriesSchemes</key>
<array>
    <string>fbapi</string>
    <string>fb-messenger-api</string>
    <string>fbauth2</string>
    <string>fbshareextension</string>
</array>

AppDelegate中,更新AppDelegate方法并添加新方法,如下所示

代码语言:javascript
运行
复制
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
    // Override point for customization after application launch.

    return SDKApplicationDelegate.shared.application(application, didFinishLaunchingWithOptions: launchOptions)

}
func application(_ app: UIApplication, open url: URL, options: [UIApplicationOpenURLOptionsKey : Any] = [:]) -> Bool
{
    return SDKApplicationDelegate.shared.application(app, open: url, options: options)
}   

登录方法如下:

代码语言:javascript
运行
复制
@objc func loginButtonClicked() {
    let  loginManager = LoginManager()
    loginManager.loginBehavior = .systemAccount
    loginManager.logIn([ .publicProfile,.userFriends,.email ], viewController: self) { loginResult in
        switch loginResult {
        case .failed(let error):
            print(error)
        case .cancelled:
            print("User cancelled login.")
        case .success(let grantedPermissions, let declinedPermissions, let accessToken):
            print("Logged in!")
            //Do further code...
        }
    }
}

它适用于我在SWIFT3.0SDK4.17.0中工作,我希望它能为您工作,谢谢。

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

https://stackoverflow.com/questions/29321402

复制
相关文章

相似问题

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