Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Общие вопросы » Почему не работает авторизация на Facebook?

Почему не работает авторизация на Facebook?


     16.06.2017    авторизация через соцсети, facebook    Все вопросы » Общие вопросы    1676

вопрос
Здравствуйте! При попытке авторизироваться на сайте через Facebook появляется следующая ошибка:

"Не удалось получить данные пользователя из социальной сети. Либо был неверно указан секретный ключ в настройках сети, либо на сервере запрещены исходящие внешние соединения, и не удалось подключиться к социальной сети."

Ключи рабочие, проверял на другом хостинге. Следовательно на сервере запрещены исходящие внешние соединения.

Написал в тех поддержку хостинга. Получил ответ:

"Опишите, пожалуйста, более подробно. Как мы можем воспроизвести вашу проблему? Предоставьте доступы, которые могут нам понадобиться (админ. панель сайта и т.п.). Предоставьте скриншоты ошибок. Если что-то работает не так, как надо, то покажите, где оно работает не так, и как оно должно работать, если это возможно в данный момент. После получения всех сведений мы начнем диагностику Вашей проблемы и попытаемся Вам помочь."

Подскажите пожалуйста, как им правильно объяснить, что включить надо? Спасибо!

Хостинг - https://cp.beget.com/
Сайт - https://deathgrind.club/
Информация о сервере - https://deathgrind.club/test.php
Версия DLE - 11.3

Ответа пока нет


1 комментарий

yeahga
Юзер

yeahga - 17 июня 2017 17:34 -

Собственно, вот решение:

class AuthViaFacebook {

    function get_user( $social_config ) {
		global $config, $lang;

		$params = array(
			'client_id'     => $social_config['fcid'],
			'client_secret' => $social_config['fcsecret'],
			'code' => $_GET['code'],
			'redirect_uri'  => $config['http_home_url'] . "index.php?do=auth-social&provider=fc"
		);

		@parse_str(http_get_contents('https://graph.facebook.com/oauth/access_token' . '?' . http_build_query($params)), $token);

		if (isset($token['access_token'])) {

			$params = array('access_token' => $token['access_token'], 'fields' => "id,name,email,first_name,last_name");

			$user = @json_decode(http_get_contents('https://graph.facebook.com/me' . '?' . http_build_query($params)), true);

			if (isset($user['id'])) {

				return array ('sid' => sha1 ('facebook'.$user['id']), 'nickname' => $user['name'], 'name' => $user['first_name'].' '.$user['last_name'], 'email' => $user['email'], 'avatar' => '', 'provider' => 'Facebook' );

			} else return $lang['social_err_3'];

		} else return $lang['social_err_1'];

    }

}

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх