Swift中的Facebook帐户工具包

Swift中的Facebook帐户工具包,swift,login,sms,facebook-login,account,Swift,Login,Sms,Facebook Login,Account,我无法调用帐户工具包的委托方法。我可能错了,但我认为这是因为委托方法没有正确地从Objective-C转换为Swift。以下是代码示例: import AccountKit import UIKit class LoginViewController: UIViewController, AKFViewControllerDelegate { let accountKit = AKFAccountKit(responseType: .AuthorizationCode) va

我无法调用帐户工具包的委托方法。我可能错了,但我认为这是因为委托方法没有正确地从Objective-C转换为Swift。以下是代码示例:

import AccountKit
import UIKit

class LoginViewController: UIViewController, AKFViewControllerDelegate {

    let accountKit = AKFAccountKit(responseType: .AuthorizationCode)
    var pendingLoginViewController: UIViewController?

    override func viewDidLoad() {
        super.viewDidLoad()
        pendingLoginViewController = accountKit.viewControllerForLoginResume()
    }

    @IBAction func loginWithEmail(sender: AnyObject) {
        let viewController = accountKit.viewControllerForEmailLoginWithEmail(nil, state: generateState()) as! AKFViewController
        viewController.enableSendToFacebook = true
        viewController.delegate = self
        presentViewController(viewController as! UIViewController, animated: true, completion: nil)
    }

    private func generateState() -> String {
        let uuid = NSUUID().UUIDString
        let indexOfDash = uuid.rangeOfString("-")!.startIndex
        return uuid.substringToIndex(indexOfDash)
    }

    func viewController(viewController: UIViewController!, didCompleteLoginWithAuthorizationCode code: String!, state: String!) {
        // This function doesn't get called when user finished their login
    }
}

尝试其他3种委托方法。我很快就试过了。为我调用了失败回调(#3)。这很好,因为我没有完成正确的SDK初始化。可能是您遇到了同样的情况,所以您查看控制器接收到故障回调。由于未实现该回调,您不知道:

func viewController(viewController: UIViewController!, didCompleteLoginWithAuthorizationCode code: String!, state: String!) {
    print("1")
}

func viewController(viewController: UIViewController!, didCompleteLoginWithAccessToken accessToken: AKFAccessToken!, state: String!) {
    print("2")
}

func viewController(viewController: UIViewController!, didFailWithError error: NSError!) {
    print("3")
}

func viewControllerDidCancel(viewController: UIViewController!) {
    print("4")
}

尝试其他3种委托方法。我很快就试过了。为我调用了失败回调(#3)。这很好,因为我没有完成正确的SDK初始化。可能是您遇到了同样的情况,所以您查看控制器接收到故障回调。由于未实现该回调,您不知道:

func viewController(viewController: UIViewController!, didCompleteLoginWithAuthorizationCode code: String!, state: String!) {
    print("1")
}

func viewController(viewController: UIViewController!, didCompleteLoginWithAccessToken accessToken: AKFAccessToken!, state: String!) {
    print("2")
}

func viewController(viewController: UIViewController!, didFailWithError error: NSError!) {
    print("3")
}

func viewControllerDidCancel(viewController: UIViewController!) {
    print("4")
}

我错了。我将
responseType
设置为
.AuthorizationCode
,但正在等待
上的回调。AccessToken
我错了。我将
responseType
设置为
.AuthorizationCode
,但正在等待
上的回调。AccessToken

@jayvdik: 您如何从回拨中获取用户输入的电话号码

答:您可以通过requestAccount方法从accountkit对象中获得它

accountKit.requestAccount({account,错误在
打印(“账号\(账号?.accountID)”)
打印(“电子邮件:\(帐户?.emailAddress)”)
打印(“电话:\(帐户?.phoneNumber?.stringRepresentation()))
})
@JayVDiyk: 您如何从回拨中获取用户输入的电话号码

答:您可以通过requestAccount方法从accountkit对象中获得它

accountKit.requestAccount({account,错误在
打印(“账号\(账号?.accountID)”)
打印(“电子邮件:\(帐户?.emailAddress)”)
打印(“电话:\(帐户?.phoneNumber?.stringRepresentation()))

})
这些回调都不会为我调用。你能给我看一下你的设置代码吗?你能看到对话框视图控制器吗?如果是这样,试着输入一些错误的电子邮件地址-我收到了3次回电。之后,您可以尝试“取消”-为我调用回调#4。顺便说一句,我使用Swift 2.2编译器(最新版本)。您还可以尝试使用@objc关键字标记委托方法实现。谢谢。我知道它能用。在我的原始代码中,我将
responseType
设置为错误的值。我将其设置为
AuthorizationCode
,但正在等待
AccessToken
@Thi上的回调。如果这不合适,我很抱歉,但是如何从回调中获取用户输入的电话号码?这些回调都不会为我呼叫。你能给我看一下你的设置代码吗?你能看到对话框视图控制器吗?如果是这样,试着输入一些错误的电子邮件地址-我收到了3次回电。之后,您可以尝试“取消”-为我调用回调#4。顺便说一句,我使用Swift 2.2编译器(最新版本)。您还可以尝试使用@objc关键字标记委托方法实现。谢谢。我知道它能用。在我的原始代码中,我将
responseType
设置为错误的值。我将其设置为
AuthorizationCode
,但正在等待
AccessToken
@Thi上的回调。如果这不合适,我很抱歉,但是如何从回调中获取用户输入的电话号码?