Все ответы здесь основаны на более старой системе авторизации facebook, в которой, когда нет действительного параметра signature_request, вы перенаправляете пользователя на URL-адрес oauth с параметром scope, содержащим требуемые разрешения.
Если не запрашивается разрешение на автономный доступ, проблем не возникает, так как каждый токен доступа пользователя будет недействительным в течение двух часов, поэтому после двух часов изменения параметра области с новыми разрешениями каждое новое посещение будет перенаправлено на oauth страница с новой областью, поэтому Facebook будет обрабатывать ее правильно.
Поскольку вы уже отключили разрешения для автономного режима и вам это нужно, то доступ пользователей к учетным записям будет затруднен (если только пользователь изменит пароль или деактивирует ваше приложение), предыдущее решение не будет работать правильно,
Я принимаю, что проверка ошибок разрешений в вызовах graph api - это способ проверить, не разрешил ли пользователь вам то, о чем вы просили, а затем перенаправить пользователя, чтобы он или она гарантировали вам ваши разрешения. Это приемлемо, но излишне
Потому что теперь вы можете сделать необходимые разрешения на странице настроек приложения Facebook, а точнее
перейти к https://developers.facebook.com/
и выберите приложение.
нажмите настройки -> вкладка Auth Dialog в левом меню.
и выберите необходимые права доступа, которые позволят всем пользователям наверняка, зайти на вашу страницу с необходимыми разрешениями,
Тем не менее, вы не можете делать какие-либо расширенные разрешения здесь обязательно.
Таким образом, единственный возможный ответ на вашу проблему заключается в том, чтобы удалить все свои маркеры доступа одновременно, поскольку это позволит перенаправить всех возвращающихся пользователей в новый диалог разрешений.
Но это решение поможет вам получить информацию о вашей пользовательской базе,
Чтобы преодолеть эту проблему, вы можете вызвать ее только тогда, когда пользователь заходит на вашу страницу, поэтому после удаления своего токена пользователь доступа, вероятно, повторно посетит вашу страницу. Но вам нужно оставить дополнительный бит для каждого пользователя, считая, что он подвергается этой операции удаления токена доступа. Если пользователь не подвергается этой операции и посещает ваше приложение, просто удалите токен доступа и перенаправьте пользователя на страницу oauth с новыми разрешениями, если пользователь уже сделал это, то для такого рода проблем нет проблем.
Так что мой ответ - вышеупомянутые альтернативы Но самый сложный и элегантный способ решения этой проблемы - запрашивать разрешения только тогда, когда пользователь взаимодействует с вашим приложением, чтобы использовать ту функциональность вашего приложения, для которой требуется разрешение, о котором мы говорим. Таким образом, показатель CTR в диалоговом окне «oauth» будет повышаться, поскольку вы не будете бояться, что ваш пользователь начнёт запрашивать начальные разрешения. Пользователи будут более довольны использованием вашего приложения. Всякий раз, когда им нужно делать чудесные вещи в вашем приложении, вы можете попросить о чудесном разрешении.
удачи