Различают ситуацию между регистрацией телефона на Facebook и отказом в разрешении на электронную почту
Я использую omniauth-facebook gem & devise gem для входа в Facebook на моем сайте (веб-сайт Rails). При использовании входа на Facebook я буду запрашивать поле электронной почты и сохранять его в своей базе данных. Пока все отлично работает. Но я обнаружил, что есть две ситуации, когда я не могу получить поля электронной почты.
- Когда пользователь регистрирует facebook по телефону и пытается зайти на мой сайт через Facebook, поле возвращенного адреса электронной почты будет нулевым.
- Когда пользователь регистрирует facebook по электронной почте, но отклоняет разрешение на электронную почту во время авторизации, возвращаемое поле электронной почты будет нулевым.
Я не могу различить эти две ситуации, потому что все электронные письма равны нулю. Кто-нибудь сталкивается с той же проблемой и получает хорошее решение или обходной путь?
Очень признателен:)
1 ответ
Посмотрите на этот запрос-и-отзыв
Это вызов
GET /{user-id}/permissions
И в ответ
{
"data": [
{
"permission": "public_profile",
"status": "granted"
},
{
"permission": "publish_actions",
"status": "granted"
},
{
"permission": "user_friends",
"status": "declined"
}
]
}
Отсюда вы можете легко отличить это, отклонено ли его разрешение электронной почты или нет.
Если разрешение на получение электронной почты предоставлено и в ответных данных отсутствует электронная почта, то это, безусловно, случай регистрации по телефону