#facebook-graph-api
#facebook-graph-api
Вопрос:
Написано мобильное приложение на основе api facebook. Приложение прерывается, если пользователь отменяет выбор дня рождения в качестве разрешения на экране разрешений. Как я могу сделать разрешение обязательным, чтобы они не могли отменить его выбор?
Ответ №1:
То, о чем вы просите, невозможно напрямую, но это возможно косвенно. Если вы рассмотрите две следующие функции Facebook, вы сможете получить то, что вам нужно.
1. Повторный запрос разрешений
В Graph 2.0 Facebook ввел концепцию «отклоненного» разрешения, когда пользователи могут отменить выбор разрешения, как вы говорите. По умолчанию, если вы запустите метод входа в SDK, Facebook больше не будет запрашивать у пользователя разрешение.
Однако существует вызываемый параметр auth_type
, который вы можете ввести с помощью «повторного запроса», чтобы повторно запросить отклоненные разрешения.
Более подробную информацию см. в документах Facebook.
2. Проверка разрешений после входа в систему
Используя конечную точку me / permissions API, вы можете увидеть, какие разрешения предоставил пользователь:
{
"data": [
{
"permission": "installed",
"status": "granted"
},
{
"permission": "public_profile",
"status": "granted"
},
{
"permission": "user_friends",
"status": "declined" // the user didn't accept this one
}
]
}
Объединение
Вот как может выглядеть ваш поток входа в систему:
- Предложите пользователю войти в систему
- После успешного входа в систему проверьте разрешения пользователя, чтобы узнать, предоставили ли они все ваши «обязательные» разрешения
- Если они этого не сделали, покажите пользователю сообщение «вы не предоставили разрешение X, пожалуйста, войдите снова, чтобы предоставить его»
- Повторно запустите метод входа, но добавьте
auth_type
как «повторный запрос» - На этот раз, когда откроется окно, дополнительные разрешения будут обязательными. Чтобы перейти к следующему шагу, они должны предоставить разрешение.
Надеюсь, это поможет!