Как сделать так, чтобы при входе в систему требовалось разрешение facebook?

#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
    }
  ]
}
  

Объединение

Вот как может выглядеть ваш поток входа в систему:

  1. Предложите пользователю войти в систему
  2. После успешного входа в систему проверьте разрешения пользователя, чтобы узнать, предоставили ли они все ваши «обязательные» разрешения
  3. Если они этого не сделали, покажите пользователю сообщение «вы не предоставили разрешение X, пожалуйста, войдите снова, чтобы предоставить его»
  4. Повторно запустите метод входа, но добавьте auth_type как «повторный запрос»
  5. На этот раз, когда откроется окно, дополнительные разрешения будут обязательными. Чтобы перейти к следующему шагу, они должны предоставить разрешение.

Надеюсь, это поможет!