2016-04-15 3 views
1

アカウントキットの代理人メソッドを取得できませんでした。私は間違っているかもしれませんが、これはデリゲートメソッドがObjective-CからSwiftに正しく変換されなかったためだと思います。コードサンプルは次のとおりです。SwiftのFacebookアカウントキット

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 
    } 
} 

答えて

2

さらに3つのデリゲートメソッドを実装してみてください。私はすぐにこれを試しました。失敗コールバックが私のために呼び出されます(#3)。私は適切なSDKの初期化を完了しなかったので、それは問題ありません。同じ状況が発生する可能性がありますので、コントローラが失敗のコールバックを受け取るように見えるようにしてください。そのコールバックは実装されていないので、あなたはそれを認識していません:

+0

をmenthodことを得ることができます。セットアップコードを表示できますか? – Thi

+1

さて、確かに。 http://collabedit.com/nu33e –

+0

ダイアログビューコントローラーが表示されますか?もしそうなら、間違ったメールアドレスを入力しようとする - 私は#3コールバックを取得しています。その後、 "キャンセル"を試すことができます - コールバック#4が私のために呼び出されます。私はSwift 2.2コンパイラ(最新のもの)を使用します。 @objcキーワードを使用してデリゲートメソッド実装をマークすることもできます。 –

0

私は間違っていました。 responseType.AuthorizationCodeに設定しましたが、コールバックが.AccessTokenであるのを待っていました。

0

@JayVDiyk: コールバックからユーザーが入力した電話番号を取得するにはどうすればよいですか? -

回答:あなたはrequestAccountによってaccountkitオブジェクトからこれらのコールバックのいずれもが私のために呼び出されることはありません飽き

accountKit.requestAccount({ account, error in 
 
       print("Account number \(account?.accountID)") 
 
       print("Email: \(account?.emailAddress)") 
 
       print("Phone: \(account?.phoneNumber?.stringRepresentation())") 
 
})

関連する問題