快速的脸书登录无法收到电子邮件?



大家好,我正在使用DTSocialMediaLogin进行社交媒体登录(Facebook, Google, Twitter),除了Facebook之外,它们都可以工作。当我尝试登录Facebook时,由于"电子邮件"无法登录。

这是即将到来的数据的结果

您可以在图像上看到,没有关于即将到来的数据的电子邮件。

下面是权限部分:

func login(from viewController: UIViewController, done: @escaping(_ status: Bool, _ message: String, _ user: DTFacebookUser?) -> Void) {
let login = FBSDKLoginKit.LoginManager()
login.defaultAudience = .everyone
if scopes.count == 0 {
scopes = ["public_profile", "email"]
}

login.logIn(permissions: scopes, from: viewController) { (result, error) in
DispatchQueue.main.async {
if error != nil {
done(false, error!.localizedDescription, nil)
}
else if let result = result {
if result.isCancelled && result.declinedPermissions.count > 0 {
done(false, "facebook_cancel_declined", nil)
}
else {
//let userID = result.token?.userID
self.graph(str: "/me?fields=email,name", done: done)
}
}
}
}
}

下面是登录操作:

@objc func actionFacebook() {

self.socialLogin.login(with: .Facebook, from: self) { (error, user) in
// user.name, user.email, user.id, user.profileImageURL
if user == nil {
return
}

var text = "FACEBOOK LOGINn"
text = "(text)nFull Name: (user!.name)"
text = "(text)nEmail: (user!.email)"
text = "(text)nUser ID: (user!.id)"
text = "(text)nImage: (user!.profileImageURL)"

print(text)

if user!.email == "" {
return
}

if user!.name == "" {
return
}

if self.passSignType == "Login"
{
ServiceManager.shared.Authenticate(Phone: "", MobilePin: "", Email: user!.email, Password: "", ProviderName: "Facebook", ProviderId: user!.id, ProviderToken: "", Name: user!.name, Username: user!.name, ActionType: "Login", callbackSuccess: { (response) in

HUD.flash(.label("hudAccountLogin".localized()), delay: 1.0) { _ in

}

DispatchQueue.main.asyncAfter(deadline: .now() + 0.3) {
self.dismiss(animated: true) {

}
NotificationCenter.default.post(name: Notification.Name(rawValue: "UserLogged"), object: nil)
}

}) { (response) in

HUD.flash(.label("hudFailed".localized()), delay: 1.0) { _ in

}
}
}
}

我无法解决的问题,电子邮件不来的Facebook…

post logIn(permission ..)API使用GraphRequestConnection获取用户信息。

func getFbUserProfileInfo() {
let connection  = GraphRequestConnection()
connection.add(GraphRequest(graphPath: "/me",
parameters: ["fields" : "id,first_name,last_name,email,name"],
tokenString: AccessToken.current?.tokenString,
version: Settings.defaultGraphAPIVersion,
httpMethod: .get)) { (connection, values, error) in
if let res = values {
if let response = res as? [String: Any] {
let username = response["name"]
let email = response["email"]
}
}
}
connection.start()
}

相关内容

最新更新