Недопустимая область при постановке, но работает на локальном - PullRequest
0 голосов
/ 11 июня 2019

Я хотел бы ввести логин на моем сайте в Facebook.Этот сайт предназначен для самостоятельного изучения, поэтому я не использую php-зависимости на Facebook.Я уже сделал это, но с версией 2.3 я выбрал самую последнюю: версию 3.3, и мое приложение работает (не в тестовом режиме)

Я начал просто получать свой базовый профиль (простофамилия, имя и идентификатор Facebook).Все работает как положено.Когда я закончил, я подумал, что мое приложение было отлично настроено, затем я поиграл с Facebook Playground , чтобы обнаружить разрешения и графические поля.

Первая проблема: я не смог получить свои списки друзей(с детской площадкой).У меня было разрешение «друзья» в моем токене, затем я спрашиваю списки друзей id, я всегда получаю следующую ошибку:

{
  "error": {
    "message": "(#33) This object does not exist or does not support this action",
    "type": "OAuthException",
    "code": 33,
    "fbtrace_id": "DLbDoKNTwEh"
  }
}

Это не очень важно, я решил отложить это в сторону: я отключил его,Затем, без области списка друзей, все на моем локальном сервере работает нормально: я решил перенести его на свой промежуточный сервер (приложение heroku).Тогда у меня был URL обратного вызова в моей конфигурации Facebook.И мне никогда не удается войти в мою учетную запись Facebook на сервере heroku.Следующий метод класса позволяет мне управлять моим социальным API.Таким образом, метод перенаправляет пользователя на URL, чтобы получить социальный токен из возвращенного кода:

private function getRedirectURL(Social $social){
        return File::fromRoot(Folder::getVersionFolder().'redirections/'.$social->getType().'.php')->getUrl(['protocol' => 'https']);
    }


    public function attemptLogin($social = null){
        $social = Social::get($social);

        switch(Social::TYPES[$social->getType()]){
            case Social::TYPES['facebook']:
                return 'https://www.facebook.com/v3.3/dialog/oauth?client_id=' . CONFIG::SOCIAL['facebook']['id'] . '&redirect_uri='.$this->getRedirectURL($social).'&scope=user_birthday,user_hometown,user_location,user_photos,user_friends,user_gender,user_link,user_age_range,email,public_profile';
                break;
            case Social::TYPES['instagram']:
                return 'https://api.instagram.com/oauth/authorize/?client_id='.CONFIG::SOCIAL['instagram']['id'].'&redirect_uri='.$this->getRedirectURL($social).'&response_type=code';
                break;
            case 'google':
                return 'https://accounts.google.com/o/oauth2/v2/auth?redirect_uri='.$this->getRedirectURL($social).'&prompt=consent&response_type=code&client_id='.CONFIG::SOCIAL['google']['id'].'&scope=https://www.googleapis.com/auth/userinfo.email+https://www.googleapis.com/auth/userinfo.profile&access_type=offline';
                break;


        }

        return Folder::fromRoot(Folder::getVersionFolder())->getUrl();
    }

Эта ссылка возвращает мне эту ошибку, когда я пытаюсь войти в систему:

Неверные области: user_birthday, user_hometown, user_location, user_photos, user_friends, user_gender, user_link, user_age_range.Это сообщение показывается только разработчикам.Пользователи вашего приложения будут игнорировать эти разрешения, если они есть.Пожалуйста, прочитайте документацию для действительных разрешений: https://developers.facebook.com/docs/facebook-login/permissions

...