Я пытаюсь реализовать это, но он ничего не печатает.logInWithReadPermissions (fromViewController) обработчик не вызван
loginManager.logInWithReadPermissions(["email"], fromViewController: self.parentViewController) { (result, error) -> Void in
print("hi")
}
Я могу распечатать до и после этого вызова метода, но не в обработчике. Единственная ошибка в консоли:
-canOpenURL: failed for URL: "fbauth2:/"
Который, согласно FB, могут быть проигнорированы (https://developers.facebook.com/docs/ios/ios9)
Вот весь ViewController
:
import UIKit
import FBSDKCoreKit
import FBSDKLoginKit
class ViewController: UIViewController, FBSDKLoginButtonDelegate {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
if FBSDKAccessToken.currentAccessToken() != nil {
// User already has access token
logUserData()
} else {
let loginButton = FBSDKLoginButton()
loginButton.center = view.center
loginButton.readPermissions = ["email", "posts"]
view.addSubview(loginButton)
loginButton.delegate = self
}
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
// MARK: - FBSDKLoginButtonDelegate methods
func loginButton(loginButton: FBSDKLoginButton!, didCompleteWithResult result: FBSDKLoginManagerLoginResult!, error: NSError!) {
print("logged in")
}
func loginButtonDidLogOut(loginButton: FBSDKLoginButton!) {
print("logged out")
}
private func logUserData() {
let loginManager = FBSDKLoginManager()
loginManager.logInWithReadPermissions(["email"], fromViewController: self.parentViewController) { (result, error) -> Void in
print("hi")
}
}
}
Редактировать Вот что я добавил в мой .plist:
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>fb983308525071081</string>
</array>
</dict>
</array>
<key>FacebookAppID</key>
<string>983308525071081</string>
<key>FacebookDisplayName</key>
<string>Demo</string>
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<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>
<key>akamaihd.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>
ли вы указали следующие ключи в вашем .plist: LSApplicationQueriesSchemes, FacebookAppID? – Terry
да, см. Править, выше – Morgan