2017-02-08 13 views
0

FacebookSDKとスタックオーバーフローとチュートリアルを統合していますが、正しく動作しません。プロファイルデータを取得できません。このメソッドは呼び出されません。 「完全ログイン」のみが表示されます。ログインプロセスは機能していますが、ログアウトオプションはボタンには表示されません。私はどんなヒントにも感謝しています。ここでFacebookSDKとの統合時にプロファイル情報を取得する

import Foundation 
import UIKit 
import FBSDKLoginKit 
import FBSDKCoreKit 



class mainView: UIViewController, FBSDKLoginButtonDelegate { 

@IBOutlet weak var navigationBar: UINavigationBar! 
@IBOutlet weak var mainImage: UIImageView! 
@IBOutlet weak var getRecipeBtn: UIButton! 
@IBOutlet weak var addImageBtn: UIButton! 

let loginButton: FBSDKLoginButton = { 
    let button = FBSDKLoginButton() 
    button.readPermissions = ["email"] 
    return button 
}() 

override func viewDidLoad() { 
    super.viewDidLoad() 

    view.addSubview(loginButton) 
    loginButton.center = view.center 
    loginButton.delegate = self 

    if let token = FBSDKAccessToken.current() { 
     fetchProfile() 
    } 
} 

func loginButton(_ loginButton: FBSDKLoginButton!, didCompleteWith result: FBSDKLoginManagerLoginResult!, error: Error!) { 
    print("completed login") 
} 

func loginButtonWillLogin(_ loginButton: FBSDKLoginButton!) -> Bool { 
    return true 
} 

func loginButtonDidLogOut(_ loginButton: FBSDKLoginButton!) { 

} 


func fetchProfile() { 
    print("fetch profile") 

    FBSDKGraphRequest(graphPath: "me", parameters: ["fields": "email, first_name, last_name, id"]).start(completionHandler: { (connection, result, error) in guard 

     let result = result as? NSDictionary, 
     let email = result["email"] as? String, 
     let user_name = result["fist_name"] as? String, 
     let user_id = result["id"] as? String 

      else { 
       return 
     } 
     print(email) 


     }) 
    } 
} 

コンソールログの私の一部です:(。私はのInfo.plistするfbauthを追加した)

RecipeMaster [19428:630625] -canOpenURL:URLに失敗しました: "fbauth2:/" - エラー: "操作は完了できなかった(OSStatusエラー-10814)" 完了ログイン

2017年2月8日22:48:23.308043 RecipeMaster [19428:640928] PACがエラーで失敗したフェッチ[NSURLErrorDomain :-1003]

2017年2月8日22:48:23.308482 RecipeMaster [19428:641029]は[] PAC評価エラーnw_proxy_resolver_create_parsed_array:NSURLErrorDomain:-1003

+0

[iOS 10でFacebook iOS SDKを使用する方法](http://stackoverflow.com/questions/38689631/how -to-use-facebook-ios-sdk-on-ios-10) – i6x86

+0

実際、ターゲットの機能でキーチェーンの共有を有効にすることはできません。それでも同じ問題。 – Vuko

答えて

1

おそらくTargets->機能に移動し、キーチェーンの共有を有効にする必要があります(それがアクセスを可能にします)アプリのキーチェーンに、according to this answer.

+0

実際、ターゲットの機能でキーチェーン共有を有効にすることはできません。それでも同じ問題。 – Vuko

+1

アプリケーションの起動後にカスタマイズのためのオーバーライドポイントを追加しました(アプリケーション:UIApplication、didFinishLaunchingWithOptions launchOptions:[UIApplicationLaunchOptionsKey:Any]?) - > Bool { FBSDKApplicationDelegate.sharedInstance()。アプリケーション(アプリケーション、didFinishLaunchingWithOptions:launchOptions) return true } on app.delegate – i6x86

+0

はい、今すぐ回答を投稿しました。それでも、プロフィール情報は印刷できません。 – Vuko

0

は、私が最初のエラーに-canOpenURLを修復した:URLに失敗しました:「fbauth2:/を私AppDelegateに異なる方法を設定して()3.0の実装のための答えを - >Facebook SDK sign in with Swift 3 iOS 10

+0

プロファイル情報を取得して印刷できません。このエラー[NSURLErrorDomain:-1003]は引き続き表示されます。 – Vuko

関連する問題