Всем здравствуйте. Прошу помощи, ибо своих знаний не хватает. Слетела авторизация с помощью фейсбук, движок сайта DLE 10.3, пользуюсь модулем VAuth 8 free. При попытке авторизоваться попадаю на пустую страницу со ссылкой вида: При этом авторизация через остальные сети работает исправно, подозреваю, что проблема в API Facebook. Связался с разработчиком модуля, но тот ответил, что работа над ним прекращена и помочь он не может. Вот код файла, отвечающего за авторизацию PHP: <?php if( ! class_exists( 'FbFunctions' ) ) { class FbFunctions extends VAuthFunctions { function oauth_data() { global $site_url; global $vauth_config; $oauth = array(); $oauth['needfriends'] = 'no'; $oauth['needhash'] = 'yes'; $oauth['prefix'] = 'fb'; $oauth['prefix2'] = 'facebook'; $oauth['disconnect_str'] = "updtime='', ".$oauth['prefix']."_user_friends='', ".$oauth['prefix']."_connected='0', ".$oauth['prefix']."_user_id=''"; $oauth['fields'] = 'user_birthday,user_status,email,public_profile'; $oauth['auth_url'] = 'https://www.facebook.com/v2.3/dialog/oauth?client_id='; $oauth['app_id'] = $vauth_config['facebook_app_id']; $oauth['app_secret'] = $vauth_config['facebook_app_secret']; $oauth['redirect_url'] = $site_url . '/engine/modules/vauth/auth.php?auth_site=facebook'; $oauth['token_request'] = 'https://graph.facebook.com/v2.3/oauth/access_token?client_id='; $oauth['site_url'] = $site_url; $oauth['group'] = $vauth_config['facebook_user_group']; if (empty($oauth['group'])) $oauth['group'] = 4; if (empty($oauth['app_id'])) die('Не указан идентификатор приложения Facebook'); if (empty($oauth['app_secret'])) die('Не указан секретный код приложения Facebook'); return $oauth; } // ** Функция авторизации в Facebook function vauth_auth($oauth) { global $auth_code; $_SESSION['auth_from'] = 'facebook'; if ( empty($oauth['access_token']) and empty($auth_code) ) { header('Location: '.$oauth['auth_url'].$oauth['app_id'].'&redirect_uri='.$oauth['redirect_url'].'&fields='.$oauth['fields']); die; } if ( !empty($auth_code) ) { parse_str($this->vauth_get_contents($oauth['token_request'].$oauth['app_id'].'&redirect_uri='.$oauth['redirect_url'].'&client_secret='.$oauth['app_secret'].'&code='.$auth_code)); $oauth['access_token'] = $access_token; if (!empty($oauth['access_token'])) $_SESSION['facebook_access_token'] = $oauth['access_token']; else { die($my_little_url);header('Location: '.$oauth['site_url']); die(); } } return $oauth; } // ** Функция получения информации пользователя из Facebook function get_oauth_info($oauth) { global $vauth_text; global $db; global $site_url; $oauth_info = json_decode($this->vauth_get_contents('https://graph.facebook.com/v2.3/me?access_token='.$oauth['access_token']),FALSE); //Получаем информцию о пользователе $oauth['uid'] = $this->conv_it($oauth_info->id); $oauth['name'] = $this->conv_it($oauth_info->name); //Имя и фамилия $oauth['nick'] = $this->conv_it($oauth_info->username); //Логин $oauth['birthday'] = $this->conv_it($oauth_info->birthday); //Логин $oauth['birthday'] = str_replace('/','.',$oauth['birthday']); $oauth['location'] = $this->conv_it($oauth_info->location->name); //Местоположение $oauth['last_name'] = $this->conv_it($oauth_info->last_name); //Фамилия $oauth['first_name'] = $this->conv_it($oauth_info->first_name); //Имя $oauth['email'] = $this->conv_it($oauth_info->email); //Мыло $oauth['username'] = $oauth['first_name'] . ' ' . $oauth['last_name']; $oauth['fullname'] = $oauth['username']; $oauth['bio'] = $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['bio'] ) ) ) ); $oauth['name'] = $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['name'] ) ) ) ); $oauth['nick'] = $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['nick'] ) ) ) ); $oauth['quotes'] = $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['quotes'] ) ) ) ); $oauth['location'] = $db->safesql( trim( htmlspecialchars( strip_tags( $oauth['location'] ) ) ) ); $oauth['update_time'] = time(); return $oauth; } } } $vauth_api = new FbFunctions (); ?> Очень прошу помощи
@ericsoft в урле API указана версия 2.3 и она не могла измениться. Но в любом случае, вам нужно обновлять авторизацию, поскольку эта версия в июле перестанет работать: https://developers.facebook.com/docs/apps/changelog Так что если вдруг аутентификация перестала работать, значит что-то изменилось на сайте или хостинге.
Пробовал создавать новое приложение с теми же параметрами, в версии 2.9, прописывал ссылки в файле, результат тот же. Бьюсь второй день, но ни к чему не пришел((
а в первом посте содержимое файла auth.php? а то получается что запрос не отправляется на фейссбук.. я с фейсбуком не работал.. но похожее когда то делал)
https://developers.facebook.com/docs/php/howto/example_facebook_login Если не справитесь сами, за каких 20$ смогу помочь.
Проще было бы обновить DLE до актуальной версии 11.3, в которой уже исправлена авторизация на фейсбуке "из коробки" без сторонних модулей. Заодно подлатаете "дырки" найденные за весь период до выхода новых версий.