我正在尝试将Facebook集成为认知用户池的提供商,这是iOS应用程序开发的一部分。正在用户池中创建用户,但缺少电子邮件地址。我们正在从Facebook请求电子邮件地址,并将属性Map添加到用户池以读取电子邮件。但电子邮件字段为空。此问题可能是什么原因?是否与Facebook的权限有关,我是否需要完成业务验证或应用程序审查才能访问这些属性?仅供参考,我正在测试一个在Facebook中配置了电子邮件地址和电话号码的帐户。
iOS代码调用amplifier以呈现fb登录。
Amplify.Publisher.create {
try await Amplify.Auth.signInWithWebUI(for: .facebook, presentationAnchor: window)
}.sink {
if case let .failure(authError) = $0 {
print("Sign in failed \(authError)")
}
}
receiveValue: { signInResult in
if signInResult.isSignedIn {
print("Sign in succeeded")
}
}
amplifyconfiguration.json
{
"auth": {
"plugins": {
"awsCognitoAuthPlugin": {
"IdentityManager": {
"Default": {}
},
"CognitoUserPool": {
"Default": {
"PoolId": "us-*********",
"AppClientId": "************",
"AppClientSecret": "************",
"Region": "us-************"
}
},
"Auth": {
"Default": {
"authenticationFlowType": "USER_SRP_AUTH",
"OAuth": {
"WebDomain": "************",
"AppClientId": "************",
"AppClientSecret": "************",
"SignInRedirectURI": "************://",
"SignOutRedirectURI": "",
"Scopes": ["openid", "email"]
}
}
}
}
}
}
}
控制台内fb设置的屏幕截图。提供了fb的FYI值,从屏幕截图中删除
fb截图显示我们可以访问电子邮件地址。除了登录审查错误警报。我们是否需要进行登录审查才能访问电子邮件?
1条答案
按热度按时间9ceoxa921#
我认为这是一个错误,我在属性Map中指定了电话号码。正如用户@CBroe指出的那样,电话号码无法从Facebook访问。由于我在属性Map中指定了电话号码沿着电子邮件,这也导致了电子邮件Map失败。从Map中删除电话号码修复了这个问题。