Swift中的Facebook帐户工具包
我无法调用帐户工具包的委托方法。我可能错了,但我认为这是因为委托方法没有正确地从Objective-C转换为Swift。以下是代码示例: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
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上的回调。如果这不合适,我很抱歉,但是如何从回调中获取用户输入的电话号码?